Compare commits
117 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
34548b93f4 | ||
|
|
f438d33f75 | ||
|
|
be1c0de4c6 | ||
|
|
ae5ea9a8aa | ||
|
|
eeb7fb1f78 | ||
|
|
3f32d5bb3b | ||
|
|
12019ca37d | ||
|
|
4d133b2f99 | ||
|
|
e733226b0c | ||
|
|
2ed583a0c3 | ||
|
|
048cee654e | ||
|
|
1293294593 | ||
|
|
a1947a3106 | ||
|
|
eff6cd6bbe | ||
|
|
d784ac5699 | ||
|
|
9acad5157b | ||
|
|
94459efa3f | ||
|
|
e88bc6a5ce | ||
|
|
55a7ab54e9 | ||
|
|
0c324c87cc | ||
|
|
31e8befa11 | ||
|
|
86ab7a6d97 | ||
|
|
14bdfb2d98 | ||
|
|
0036e585da | ||
|
|
cba2343fc0 | ||
|
|
864eebce2f | ||
|
|
156d36fb5e | ||
|
|
068718aa8a | ||
|
|
10219abfd6 | ||
|
|
2ec231a3d0 | ||
|
|
78f29b3aff | ||
|
|
7f768e81f4 | ||
|
|
aa1460eda1 | ||
|
|
85f85063ac | ||
|
|
0a7ce3c5d8 | ||
|
|
8468d0e3db | ||
|
|
059ac27f0b | ||
|
|
a96f8836b1 | ||
|
|
4018116136 | ||
|
|
aa083c8a40 | ||
|
|
8752243e9c | ||
|
|
1d028e81c4 | ||
|
|
2752d3e42c | ||
|
|
aa074ef762 | ||
|
|
bae75cd2f6 | ||
|
|
81a714b5a2 | ||
|
|
10cd44c22f | ||
|
|
a44f59c362 | ||
|
|
8d372fcab4 | ||
|
|
97d6c518b5 | ||
|
|
f331c48e1d | ||
|
|
9d0b10058d | ||
|
|
4ccd3ba71e | ||
|
|
7a6f5a868c | ||
|
|
0fae11d031 | ||
|
|
8a9725c990 | ||
|
|
d0189b0e3a | ||
|
|
c6853cc95e | ||
|
|
f28f37fb2c | ||
|
|
7dbbe9dba4 | ||
|
|
b625d9b099 | ||
|
|
a85c81a4b4 | ||
|
|
1677a4a32b | ||
|
|
776d46f5a2 | ||
|
|
6384eeaa13 | ||
|
|
fdc0befcee | ||
|
|
f2c28eb695 | ||
|
|
4095916991 | ||
|
|
551703364a | ||
|
|
4a2fae023c | ||
|
|
fca206120e | ||
|
|
65b2199065 | ||
|
|
9d03a52bf9 | ||
|
|
c8aa44dfcb | ||
|
|
7fcbe85ab9 | ||
|
|
de0dea7df8 | ||
|
|
43cf7d04b8 | ||
|
|
4d18580482 | ||
|
|
b48e007ea8 | ||
|
|
d5e8973866 | ||
|
|
a8c530f98c | ||
|
|
47769ccd62 | ||
|
|
bfc1d9a0a8 | ||
|
|
824484e608 | ||
|
|
d3f7baae4c | ||
|
|
8d961e9b71 | ||
|
|
f22855920c | ||
|
|
18728e3519 | ||
|
|
65dc2838d3 | ||
|
|
be930ce076 | ||
|
|
1ea47a008c | ||
|
|
e0169cff79 | ||
|
|
7c53ac10e2 | ||
|
|
212e0de6e9 | ||
|
|
8e74384b5a | ||
|
|
86e7e68ce1 | ||
|
|
a77999dbb6 | ||
|
|
3288fb0f06 | ||
|
|
a81b384f90 | ||
|
|
75c11d3fcc | ||
|
|
51a6cc035c | ||
|
|
ae8008d05c | ||
|
|
7f44177986 | ||
|
|
d88aaedf3f | ||
|
|
802d4ccb0b | ||
|
|
76a84c7f5d | ||
|
|
40aefba203 | ||
|
|
6cdfb822b4 | ||
|
|
fdacab66f7 | ||
|
|
5cc12e71df | ||
|
|
f5e5fa2f36 | ||
|
|
6022b83b8c | ||
|
|
a01b1657cc | ||
|
|
6b785bd0e6 | ||
|
|
0beffc3083 | ||
|
|
d345d09b13 | ||
|
|
38e1eb8fc7 |
BIN
.github/batch.png
vendored
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
.github/batches.png
vendored
|
Before Width: | Height: | Size: 572 KiB |
BIN
.github/certificate.png
vendored
|
Before Width: | Height: | Size: 307 KiB After Width: | Height: | Size: 912 KiB |
2
.github/helper/install_dependencies.sh
vendored
@@ -5,7 +5,7 @@ echo "Setting Up System Dependencies..."
|
|||||||
|
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt remove mysql-server mysql-client
|
sudo apt remove mysql-server mysql-client
|
||||||
sudo apt install libcups2-dev redis-server mariadb-client-10.6
|
sudo apt-get install libcups2-dev redis-server mariadb-client
|
||||||
|
|
||||||
install_wkhtmltopdf() {
|
install_wkhtmltopdf() {
|
||||||
wget -q https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb
|
wget -q https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb
|
||||||
|
|||||||
BIN
.github/hero.png
vendored
|
Before Width: | Height: | Size: 842 KiB After Width: | Height: | Size: 2.0 MiB |
BIN
.github/quiz.png
vendored
|
Before Width: | Height: | Size: 578 KiB After Width: | Height: | Size: 1.0 MiB |
64
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
name: Build Container Image
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
tags:
|
||||||
|
- "*"
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
arch: [amd64, arm64]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
packages: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout Entire Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
platforms: linux/${{ matrix.arch }}
|
||||||
|
- name: Login to GitHub Container Registry
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Set Branch
|
||||||
|
run: |
|
||||||
|
export APPS_JSON='[{"url": "https://github.com/frappe/lms","branch": "main"}]'
|
||||||
|
echo "APPS_JSON_BASE64=$(echo $APPS_JSON | base64 -w 0)" >> $GITHUB_ENV
|
||||||
|
echo "FRAPPE_BRANCH=version-15" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Set Image Tag
|
||||||
|
run: |
|
||||||
|
echo "IMAGE_TAG=stable" >> $GITHUB_ENV
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: frappe/frappe_docker
|
||||||
|
path: builds
|
||||||
|
|
||||||
|
- name: Build and push
|
||||||
|
uses: docker/build-push-action@v6
|
||||||
|
with:
|
||||||
|
push: true
|
||||||
|
context: builds
|
||||||
|
file: builds/images/layered/Containerfile
|
||||||
|
tags: >
|
||||||
|
ghcr.io/${{ github.repository }}:${{ github.ref_name }},
|
||||||
|
ghcr.io/${{ github.repository }}:${{ env.IMAGE_TAG }}
|
||||||
|
build-args: |
|
||||||
|
"FRAPPE_BRANCH=${{ env.FRAPPE_BRANCH }}"
|
||||||
|
"APPS_JSON_BASE64=${{ env.APPS_JSON_BASE64 }}"
|
||||||
2
.github/workflows/ui-tests.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
mariadb:
|
mariadb:
|
||||||
image: mariadb:10.6
|
image: mariadb:10.8
|
||||||
env:
|
env:
|
||||||
MARIADB_ROOT_PASSWORD: 123
|
MARIADB_ROOT_PASSWORD: 123
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
56
README.md
@@ -1,11 +1,10 @@
|
|||||||
<div align="center" markdown="1">
|
<div align="center" markdown="1">
|
||||||
|
|
||||||
<img src=".github/lms-logo.png" alt="Frappe Learning logo" width="100"/>
|
<img src=".github/lms-logo.png" alt="Frappe Learning logo" width="80" height="80"/>
|
||||||
<h1>Frappe Learning</h1>
|
<h1>Frappe Learning</h1>
|
||||||
|
|
||||||
**Easy to use, open source, Learning Management System**
|
**Easy to use, open source, Learning Management System**
|
||||||
|
|
||||||

|
|
||||||

|

|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -24,10 +23,10 @@
|
|||||||
## Frappe Learning
|
## Frappe Learning
|
||||||
Frappe Learning is an easy-to-use learning system that helps you bring structure to your content.
|
Frappe Learning is an easy-to-use learning system that helps you bring structure to your content.
|
||||||
|
|
||||||
## Motivation
|
### Motivation
|
||||||
In 2021, we were looking for a Learning Management System to launch [Mon.School](https://mon.school) for FOSS United. We checked out Moodle, but it didn’t feel right. The forms were unnecessarily lengthy and the UI was confusing. It shouldn't be this hard to create a course right? So I started making a learning system for Mon.School which soon became a product in itself. The aim is to have a simple platform that anyone can use to launch a course of their own and make knowledge sharing easier.
|
In 2021, we were looking for a Learning Management System to launch [Mon.School](https://mon.school) for FOSS United. We checked out Moodle, but it didn’t feel right. The forms were unnecessarily lengthy and the UI was confusing. It shouldn't be this hard to create a course right? So I started making a learning system for Mon.School which soon became a product in itself. The aim is to have a simple platform that anyone can use to launch a course of their own and make knowledge sharing easier.
|
||||||
|
|
||||||
## Key Features
|
### Key Features
|
||||||
|
|
||||||
- **Structured Learning**: Design a course with a 3-level hierarchy, where your courses have chapters and you can group your lessons within these chapters. This ensures that the context of the lesson is set by the chapter.
|
- **Structured Learning**: Design a course with a 3-level hierarchy, where your courses have chapters and you can group your lessons within these chapters. This ensures that the context of the lesson is set by the chapter.
|
||||||
|
|
||||||
@@ -37,24 +36,42 @@ In 2021, we were looking for a Learning Management System to launch [Mon.School]
|
|||||||
|
|
||||||
- **Getting Certified**: Once a learner has completed the course or batch, you can grant them a certificate. The app provides an inbuilt certificate template. You can use this or else create a template of your own and use that instead.
|
- **Getting Certified**: Once a learner has completed the course or batch, you can grant them a certificate. The app provides an inbuilt certificate template. You can use this or else create a template of your own and use that instead.
|
||||||
|
|
||||||
### Batches to group learners
|
<details>
|
||||||
|
<summary>View Screenshots</summary>
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### Quiz to evaluate them
|

|
||||||
|
<div align="center">
|
||||||
|
<sub>
|
||||||
|
Create batches to group your learners
|
||||||
|
</sub>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||

|

|
||||||
|
<div align="center">
|
||||||
|
<sub>
|
||||||
|
Evaluate their knowledge by quizzes
|
||||||
|
</sub>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
|
||||||
### Certificate to authenticate their knowledge
|
|
||||||
|
|
||||||

|

|
||||||
|
<div align="center">
|
||||||
|
<sub>
|
||||||
|
Autenticate their work with certification
|
||||||
|
</sub>
|
||||||
|
</div>
|
||||||
|
</details>
|
||||||
|
|
||||||
## Under the Hood
|
|
||||||
|
|
||||||
- [**Frappe Framework**](https://github.com/frappe/frappe): A full-stack web application framework written in Python and Javascript. The framework provides a robust foundation for building web applications, including a database abstraction layer, user authentication, and a REST API.
|
### Under the Hood
|
||||||
|
|
||||||
- [**Frappe UI**](https://github.com/frappe/frappe-ui): A Vue-based UI library, to provide a modern user interface. The Frappe UI library provides a variety of components that can be used to build single-page applications on top of the Frappe Framework.
|
- [**Frappe Framework**](https://github.com/frappe/frappe): A full-stack web application framework.
|
||||||
|
|
||||||
|
- [**Frappe UI**](https://github.com/frappe/frappe-ui): A Vue-based UI library, to provide a modern user interface.
|
||||||
|
|
||||||
## Production Setup
|
## Production Setup
|
||||||
|
|
||||||
@@ -89,15 +106,15 @@ wget https://frappe.io/easy-install.py
|
|||||||
python3 ./easy-install.py deploy \
|
python3 ./easy-install.py deploy \
|
||||||
--project=learning_prod_setup \
|
--project=learning_prod_setup \
|
||||||
--email=your_email.example.com \
|
--email=your_email.example.com \
|
||||||
--image=ghcr.io/frappe/learning \
|
--image=ghcr.io/frappe/lms \
|
||||||
--version=stable \
|
--version=stable \
|
||||||
--app=learning \
|
--app=lms \
|
||||||
--sitename subdomain.domain.tld
|
--sitename subdomain.domain.tld
|
||||||
```
|
```
|
||||||
|
|
||||||
Replace the following parameters with your values:
|
Replace the following parameters with your values:
|
||||||
- `your_email.example.com`: Your email address
|
- `your_email.example.com`: Your email address
|
||||||
- `subdomain.domain.tld`: Your domain name where Insights will be hosted
|
- `subdomain.domain.tld`: Your domain name where Learning will be hosted
|
||||||
|
|
||||||
The script will set up a production-ready instance of Frappe Learning with all the necessary configurations in about 5 minutes.
|
The script will set up a production-ready instance of Frappe Learning with all the necessary configurations in about 5 minutes.
|
||||||
|
|
||||||
@@ -113,16 +130,16 @@ You need Docker, docker-compose and git setup on your machine. Refer [Docker doc
|
|||||||
cd frappe-learning
|
cd frappe-learning
|
||||||
|
|
||||||
# Download the docker-compose file
|
# Download the docker-compose file
|
||||||
wget -O docker-compose.yml https://raw.githubusercontent.com/frappe/insights/develop/docker/docker-compose.yml
|
wget -O docker-compose.yml https://raw.githubusercontent.com/frappe/lms/develop/docker/docker-compose.yml
|
||||||
|
|
||||||
# Download the setup script
|
# Download the setup script
|
||||||
wget -O init.sh https://raw.githubusercontent.com/frappe/insights/develop/docker/init.sh
|
wget -O init.sh https://raw.githubusercontent.com/frappe/lms/develop/docker/init.sh
|
||||||
|
|
||||||
**Step 2**: Run the container and daemonize it
|
**Step 2**: Run the container and daemonize it
|
||||||
|
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
|
|
||||||
**Step 3**: The site [http://lms.localhost:8000/insights](http://lms.localhost:8000/lms) should now be available. The default credentials are:
|
**Step 3**: The site [http://lms.localhost:8000/lms](http://lms.localhost:8000/lms) should now be available. The default credentials are:
|
||||||
- Username: Administrator
|
- Username: Administrator
|
||||||
- Password: admin
|
- Password: admin
|
||||||
|
|
||||||
@@ -134,7 +151,7 @@ To setup the repository locally follow the steps mentioned below:
|
|||||||
1. Start the server by running `bench start`
|
1. Start the server by running `bench start`
|
||||||
1. In a separate terminal window, create a new site by running `bench new-site learning.test`
|
1. In a separate terminal window, create a new site by running `bench new-site learning.test`
|
||||||
1. Map your site to localhost with the command `bench --site learning.test add-to-hosts`
|
1. Map your site to localhost with the command `bench --site learning.test add-to-hosts`
|
||||||
1. Get the Insights app. Run `bench get-app https://github.com/frappe/lms`
|
1. Get the Learning app. Run `bench get-app https://github.com/frappe/lms`
|
||||||
1. Run `bench --site learning.test install-app lms`.
|
1. Run `bench --site learning.test install-app lms`.
|
||||||
1. Now open the URL `http://learning.test:8000/lms` in your browser, you should see the app running
|
1. Now open the URL `http://learning.test:8000/lms` in your browser, you should see the app running
|
||||||
|
|
||||||
@@ -145,7 +162,8 @@ To setup the repository locally follow the steps mentioned below:
|
|||||||
- [Documentation](https://docs.frappe.io/learning)
|
- [Documentation](https://docs.frappe.io/learning)
|
||||||
- [YouTube](https://www.youtube.com/channel/UCn3bV5kx77HsVwtnlCeEi_A)
|
- [YouTube](https://www.youtube.com/channel/UCn3bV5kx77HsVwtnlCeEi_A)
|
||||||
|
|
||||||
<h2></h2>
|
<br>
|
||||||
|
<br>
|
||||||
<div align="center" style="padding-top: 0.75rem;">
|
<div align="center" style="padding-top: 0.75rem;">
|
||||||
<a href="https://frappe.io" target="_blank">
|
<a href="https://frappe.io" target="_blank">
|
||||||
<picture>
|
<picture>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ version: "3.7"
|
|||||||
name: lms
|
name: lms
|
||||||
services:
|
services:
|
||||||
mariadb:
|
mariadb:
|
||||||
image: mariadb:10.6
|
image: mariadb:10.8
|
||||||
command:
|
command:
|
||||||
- --character-set-server=utf8mb4
|
- --character-set-server=utf8mb4
|
||||||
- --collation-server=utf8mb4_unicode_ci
|
- --collation-server=utf8mb4_unicode_ci
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
"@editorjs/simple-image": "^1.6.0",
|
"@editorjs/simple-image": "^1.6.0",
|
||||||
"@editorjs/table": "^2.4.2",
|
"@editorjs/table": "^2.4.2",
|
||||||
"ace-builds": "^1.36.2",
|
"ace-builds": "^1.36.2",
|
||||||
|
"apexcharts": "^4.3.0",
|
||||||
"chart.js": "^4.4.1",
|
"chart.js": "^4.4.1",
|
||||||
"codemirror-editor-vue3": "^2.8.0",
|
"codemirror-editor-vue3": "^2.8.0",
|
||||||
"dayjs": "^1.11.6",
|
"dayjs": "^1.11.6",
|
||||||
@@ -35,6 +36,7 @@
|
|||||||
"vue-chartjs": "^5.3.0",
|
"vue-chartjs": "^5.3.0",
|
||||||
"vue-draggable-next": "^2.2.1",
|
"vue-draggable-next": "^2.2.1",
|
||||||
"vue-router": "^4.0.12",
|
"vue-router": "^4.0.12",
|
||||||
|
"vue3-apexcharts": "^1.8.0",
|
||||||
"vuedraggable": "4.1.0"
|
"vuedraggable": "4.1.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -185,6 +185,17 @@ const addQuizzes = () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const addAssignments = () => {
|
||||||
|
if (isInstructor.value || isModerator.value) {
|
||||||
|
sidebarLinks.value.push({
|
||||||
|
label: 'Assignments',
|
||||||
|
icon: 'Pencil',
|
||||||
|
to: 'Assignments',
|
||||||
|
activeFor: ['Assignments', 'AssignmentForm'],
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const addPrograms = () => {
|
const addPrograms = () => {
|
||||||
let activeFor = ['Programs', 'ProgramForm']
|
let activeFor = ['Programs', 'ProgramForm']
|
||||||
let index = 1
|
let index = 1
|
||||||
@@ -247,8 +258,9 @@ watch(userResource, () => {
|
|||||||
if (userResource.data) {
|
if (userResource.data) {
|
||||||
isModerator.value = userResource.data.is_moderator
|
isModerator.value = userResource.data.is_moderator
|
||||||
isInstructor.value = userResource.data.is_instructor
|
isInstructor.value = userResource.data.is_instructor
|
||||||
addQuizzes()
|
|
||||||
addPrograms()
|
addPrograms()
|
||||||
|
addQuizzes()
|
||||||
|
addAssignments()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
75
frontend/src/components/AssessmentPlugin.vue
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
<template>
|
||||||
|
<Dialog
|
||||||
|
v-model="show"
|
||||||
|
:options="{
|
||||||
|
size: 'xl',
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<template #body>
|
||||||
|
<div class="p-5 space-y-4">
|
||||||
|
<div v-if="type == 'quiz'" class="text-lg font-semibold">
|
||||||
|
{{ __('Add a quiz to your lesson') }}
|
||||||
|
</div>
|
||||||
|
<div v-else class="text-lg font-semibold">
|
||||||
|
{{ __('Add an assignment to your lesson') }}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<Link
|
||||||
|
v-if="type == 'quiz'"
|
||||||
|
v-model="quiz"
|
||||||
|
doctype="LMS Quiz"
|
||||||
|
:label="__('Select a quiz')"
|
||||||
|
:onCreate="(value, close) => redirectToForm()"
|
||||||
|
/>
|
||||||
|
<Link
|
||||||
|
v-else
|
||||||
|
v-model="assignment"
|
||||||
|
doctype="LMS Assignment"
|
||||||
|
:label="__('Select an assignment')"
|
||||||
|
:onCreate="(value, close) => redirectToForm()"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="flex justify-end space-x-2">
|
||||||
|
<Button variant="solid" @click="addAssessment()">
|
||||||
|
{{ __('Save') }}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</Dialog>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import { Dialog, Button } from 'frappe-ui'
|
||||||
|
import { onMounted, ref, nextTick } from 'vue'
|
||||||
|
import Link from '@/components/Controls/Link.vue'
|
||||||
|
|
||||||
|
const show = ref(false)
|
||||||
|
const quiz = ref(null)
|
||||||
|
const assignment = ref(null)
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
onAddition: {
|
||||||
|
type: Function,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
await nextTick()
|
||||||
|
show.value = true
|
||||||
|
})
|
||||||
|
|
||||||
|
const addAssessment = () => {
|
||||||
|
props.onAddition(props.type == 'quiz' ? quiz.value : assignment.value)
|
||||||
|
show.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
const redirectToForm = () => {
|
||||||
|
if (props.type == 'quiz') window.open('/lms/quizzes/new', '_blank')
|
||||||
|
else window.open('/lms/assignments/new', '_blank')
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between mb-4">
|
||||||
<div class="text-lg font-semibold mb-4">
|
<div class="text-lg font-semibold">
|
||||||
{{ __('Assessments') }}
|
{{ __('Assessments') }}
|
||||||
</div>
|
</div>
|
||||||
<Button v-if="canSeeAddButton()" @click="showModal = true">
|
<Button v-if="canSeeAddButton()" @click="showModal = true">
|
||||||
@@ -19,6 +19,7 @@
|
|||||||
:options="{
|
:options="{
|
||||||
showTooltip: false,
|
showTooltip: false,
|
||||||
getRowRoute: (row) => getRowRoute(row),
|
getRowRoute: (row) => getRowRoute(row),
|
||||||
|
selectable: user.data?.is_student ? false : true,
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<ListHeader
|
<ListHeader
|
||||||
@@ -38,7 +39,18 @@
|
|||||||
<ListRow :row="row" v-for="row in assessments.data">
|
<ListRow :row="row" v-for="row in assessments.data">
|
||||||
<template #default="{ column, item }">
|
<template #default="{ column, item }">
|
||||||
<ListRowItem :item="row[column.key]" :align="column.align">
|
<ListRowItem :item="row[column.key]" :align="column.align">
|
||||||
<div>
|
<div v-if="column.key == 'assessment_type'">
|
||||||
|
{{ row[column.key] == 'LMS Quiz' ? 'Quiz' : 'Assignment' }}
|
||||||
|
</div>
|
||||||
|
<div v-else-if="column.key == 'title'">
|
||||||
|
{{ row[column.key] }}
|
||||||
|
</div>
|
||||||
|
<div v-else-if="isNaN(row[column.key])">
|
||||||
|
<Badge :theme="getStatusTheme(row[column.key])">
|
||||||
|
{{ row[column.key] }}
|
||||||
|
</Badge>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
{{ row[column.key] }}
|
{{ row[column.key] }}
|
||||||
</div>
|
</div>
|
||||||
</ListRowItem>
|
</ListRowItem>
|
||||||
@@ -80,6 +92,7 @@ import {
|
|||||||
ListSelectBanner,
|
ListSelectBanner,
|
||||||
createResource,
|
createResource,
|
||||||
Button,
|
Button,
|
||||||
|
Badge,
|
||||||
} from 'frappe-ui'
|
} from 'frappe-ui'
|
||||||
import { inject, ref } from 'vue'
|
import { inject, ref } from 'vue'
|
||||||
import AssessmentModal from '@/components/Modals/AssessmentModal.vue'
|
import AssessmentModal from '@/components/Modals/AssessmentModal.vue'
|
||||||
@@ -145,7 +158,7 @@ const getRowRoute = (row) => {
|
|||||||
return {
|
return {
|
||||||
name: 'AssignmentSubmission',
|
name: 'AssignmentSubmission',
|
||||||
params: {
|
params: {
|
||||||
assignmentName: row.assessment_name,
|
assignmentID: row.assessment_name,
|
||||||
submissionName: row.submission.name,
|
submissionName: row.submission.name,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -153,7 +166,7 @@ const getRowRoute = (row) => {
|
|||||||
return {
|
return {
|
||||||
name: 'AssignmentSubmission',
|
name: 'AssignmentSubmission',
|
||||||
params: {
|
params: {
|
||||||
assignmentName: row.assessment_name,
|
assignmentID: row.assessment_name,
|
||||||
submissionName: 'new',
|
submissionName: 'new',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -177,20 +190,33 @@ const getAssessmentColumns = () => {
|
|||||||
{
|
{
|
||||||
label: 'Assessment',
|
label: 'Assessment',
|
||||||
key: 'title',
|
key: 'title',
|
||||||
|
width: '25rem',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Type',
|
label: 'Type',
|
||||||
key: 'assessment_type',
|
key: 'assessment_type',
|
||||||
|
width: '15rem',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
if (!user.data?.is_moderator) {
|
if (!user.data?.is_moderator) {
|
||||||
columns.push({
|
columns.push({
|
||||||
label: 'Status/Score',
|
label: 'Status/Percentage',
|
||||||
key: 'status',
|
key: 'status',
|
||||||
align: 'center',
|
align: 'left',
|
||||||
|
width: '10rem',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return columns
|
return columns
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getStatusTheme = (status) => {
|
||||||
|
if (status === 'Pass') {
|
||||||
|
return 'green'
|
||||||
|
} else if (status === 'Not Graded') {
|
||||||
|
return 'orange'
|
||||||
|
} else {
|
||||||
|
return 'red'
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
448
frontend/src/components/Assignment.vue
Normal file
@@ -0,0 +1,448 @@
|
|||||||
|
<template>
|
||||||
|
<div
|
||||||
|
v-if="assignment.data"
|
||||||
|
class="grid grid-cols-[68%,32%] h-full"
|
||||||
|
:class="{ 'border rounded-lg': !showTitle }"
|
||||||
|
>
|
||||||
|
<div class="border-r p-5 overflow-y-auto h-[calc(100vh-3.2rem)]">
|
||||||
|
<div v-if="showTitle" class="text-lg font-semibold mb-5">
|
||||||
|
<div v-if="submissionName === 'new'">
|
||||||
|
{{ __('Submission by') }} {{ user.data?.full_name }}
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
{{ __('Submission by') }} {{ submissionResource.doc?.member_name }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="text-sm text-gray-600 font-medium mb-2">
|
||||||
|
{{ __('Question') }}:
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-html="assignment.data.question"
|
||||||
|
class="ProseMirror prose prose-table:table-fixed prose-td:p-2 prose-th:p-2 prose-td:border prose-th:border prose-td:border-gray-300 prose-th:border-gray-300 prose-td:relative prose-th:relative prose-th:bg-gray-100 prose-sm max-w-none !whitespace-normal"
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<div class="p-5">
|
||||||
|
<div class="flex items-center justify-between mb-4">
|
||||||
|
<div class="font-semibold">
|
||||||
|
{{ __('Submission') }}
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center space-x-2">
|
||||||
|
<Badge v-if="isDirty" theme="orange">
|
||||||
|
{{ __('Not Saved') }}
|
||||||
|
</Badge>
|
||||||
|
<Badge
|
||||||
|
v-else-if="submissionResource.doc?.status"
|
||||||
|
:theme="statusTheme"
|
||||||
|
size="lg"
|
||||||
|
>
|
||||||
|
{{ submissionResource.doc?.status }}
|
||||||
|
</Badge>
|
||||||
|
<Button variant="solid" @click="submitAssignment()">
|
||||||
|
{{ __('Save') }}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="
|
||||||
|
submissionName != 'new' &&
|
||||||
|
!['Pass', 'Fail'].includes(submissionResource.doc?.status) &&
|
||||||
|
submissionResource.doc?.owner == user.data?.name
|
||||||
|
"
|
||||||
|
class="bg-blue-100 p-3 rounded-md leading-5 text-sm mb-4"
|
||||||
|
>
|
||||||
|
{{ __("You've successfully submitted the assignment.") }}
|
||||||
|
{{
|
||||||
|
__(
|
||||||
|
"Once the moderator grades your submission, you'll find the details here."
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{{ __('Feel free to make edits to your submission if needed.') }}
|
||||||
|
</div>
|
||||||
|
<div v-if="showUploader()">
|
||||||
|
<div class="text-xs text-gray-600 mt-1 mb-2">
|
||||||
|
{{ __('Add your assignment as {0}').format(assignment.data.type) }}
|
||||||
|
</div>
|
||||||
|
<FileUploader
|
||||||
|
v-if="!submissionFile"
|
||||||
|
:fileTypes="getType()"
|
||||||
|
:validateFile="validateFile"
|
||||||
|
@success="(file) => saveSubmission(file)"
|
||||||
|
>
|
||||||
|
<template #default="{ uploading, progress, openFileSelector }">
|
||||||
|
<Button @click="openFileSelector" :loading="uploading">
|
||||||
|
{{
|
||||||
|
uploading
|
||||||
|
? __('Uploading {0}%').format(progress)
|
||||||
|
: __('Upload File')
|
||||||
|
}}
|
||||||
|
</Button>
|
||||||
|
</template>
|
||||||
|
</FileUploader>
|
||||||
|
<div v-else>
|
||||||
|
<div class="flex items-center">
|
||||||
|
<div class="border rounded-md p-2 mr-2">
|
||||||
|
<FileText class="h-5 w-5 stroke-1.5 text-gray-700" />
|
||||||
|
</div>
|
||||||
|
<a
|
||||||
|
:href="submissionFile.file_url"
|
||||||
|
target="_blank"
|
||||||
|
class="flex flex-col cursor-pointer !no-underline"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
{{ submissionFile.file_name }}
|
||||||
|
</span>
|
||||||
|
<span class="text-sm text-gray-500 mt-1">
|
||||||
|
{{ getFileSize(submissionFile.file_size) }}
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
<X
|
||||||
|
v-if="canModifyAssignment"
|
||||||
|
@click="removeSubmission()"
|
||||||
|
class="bg-gray-200 rounded-md cursor-pointer stroke-1.5 w-5 h-5 p-1 ml-4"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else-if="assignment.data.type == 'URL'">
|
||||||
|
<div class="text-xs text-gray-600 mb-1">
|
||||||
|
{{ __('Enter a URL') }}
|
||||||
|
</div>
|
||||||
|
<FormControl
|
||||||
|
v-model="answer"
|
||||||
|
type="text"
|
||||||
|
:readonly="!canModifyAssignment"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<div class="text-sm mb-4">
|
||||||
|
{{ __('Write your answer here') }}
|
||||||
|
</div>
|
||||||
|
<TextEditor
|
||||||
|
:content="answer"
|
||||||
|
@change="(val) => (answer = val)"
|
||||||
|
:editable="true"
|
||||||
|
:fixedMenu="true"
|
||||||
|
editorClass="prose-sm max-w-none border-b border-x bg-gray-100 rounded-b-md py-1 px-2 min-h-[7rem]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
v-if="
|
||||||
|
user.data?.name == submissionResource.doc?.owner &&
|
||||||
|
submissionResource.doc?.comments
|
||||||
|
"
|
||||||
|
class="mt-8 p-3 bg-blue-100 rounded-md"
|
||||||
|
>
|
||||||
|
<div class="text-sm text-gray-600 font-medium mb-2">
|
||||||
|
{{ __('Comments by Evaluator') }}:
|
||||||
|
</div>
|
||||||
|
<div class="leading-5">
|
||||||
|
{{ submissionResource.doc.comments }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Grading -->
|
||||||
|
<div v-if="canGradeSubmission" class="mt-8 space-y-4">
|
||||||
|
<div class="font-semibold mb-2">
|
||||||
|
{{ __('Grading') }}
|
||||||
|
</div>
|
||||||
|
<FormControl
|
||||||
|
v-if="submissionResource.doc"
|
||||||
|
v-model="submissionResource.doc.status"
|
||||||
|
:label="__('Grade')"
|
||||||
|
type="select"
|
||||||
|
:options="submissionStatusOptions"
|
||||||
|
/>
|
||||||
|
<FormControl
|
||||||
|
v-if="submissionResource.doc"
|
||||||
|
v-model="submissionResource.doc.comments"
|
||||||
|
:label="__('Comments')"
|
||||||
|
type="textarea"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
Badge,
|
||||||
|
Button,
|
||||||
|
call,
|
||||||
|
createResource,
|
||||||
|
createDocumentResource,
|
||||||
|
FileUploader,
|
||||||
|
FormControl,
|
||||||
|
TextEditor,
|
||||||
|
} from 'frappe-ui'
|
||||||
|
import { computed, inject, onMounted, onBeforeUnmount, ref, watch } from 'vue'
|
||||||
|
import { FileText, X } from 'lucide-vue-next'
|
||||||
|
import { showToast, getFileSize } from '@/utils'
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
|
|
||||||
|
const submissionFile = ref(null)
|
||||||
|
const answer = ref(null)
|
||||||
|
const router = useRouter()
|
||||||
|
const user = inject('$user')
|
||||||
|
const showTitle = router.currentRoute.value.name == 'AssignmentSubmission'
|
||||||
|
const isDirty = ref(false)
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
assignmentID: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
submissionName: {
|
||||||
|
type: String,
|
||||||
|
default: 'new',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
window.addEventListener('keydown', keyboardShortcut)
|
||||||
|
})
|
||||||
|
|
||||||
|
const keyboardShortcut = (e) => {
|
||||||
|
if (e.key === 's' && (e.ctrlKey || e.metaKey)) {
|
||||||
|
submitAssignment()
|
||||||
|
e.preventDefault()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
window.removeEventListener('keydown', keyboardShortcut)
|
||||||
|
})
|
||||||
|
|
||||||
|
const assignment = createResource({
|
||||||
|
url: 'frappe.client.get',
|
||||||
|
params: {
|
||||||
|
doctype: 'LMS Assignment',
|
||||||
|
name: props.assignmentID,
|
||||||
|
},
|
||||||
|
auto: true,
|
||||||
|
onSuccess(data) {
|
||||||
|
if (props.submissionName != 'new') {
|
||||||
|
submissionResource.reload()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const newSubmission = createResource({
|
||||||
|
url: 'frappe.client.insert',
|
||||||
|
makeParams(values) {
|
||||||
|
let doc = {
|
||||||
|
doctype: 'LMS Assignment Submission',
|
||||||
|
assignment: props.assignmentID,
|
||||||
|
member: user.data?.name,
|
||||||
|
}
|
||||||
|
if (showUploader()) {
|
||||||
|
doc.assignment_attachment = submissionFile.value.file_url
|
||||||
|
} else {
|
||||||
|
doc.answer = answer.value
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
doc: doc,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const imageResource = createResource({
|
||||||
|
url: 'lms.lms.api.get_file_info',
|
||||||
|
makeParams(values) {
|
||||||
|
return {
|
||||||
|
file_url: values.image,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
auto: false,
|
||||||
|
onSuccess(data) {
|
||||||
|
submissionFile.value = data
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const submissionResource = createDocumentResource({
|
||||||
|
doctype: 'LMS Assignment Submission',
|
||||||
|
name: props.submissionName,
|
||||||
|
onError(err) {
|
||||||
|
showToast(__('Error'), __(err.messages?.[0] || err), 'x')
|
||||||
|
},
|
||||||
|
auto: false,
|
||||||
|
cache: [user.data?.name, props.assignmentID],
|
||||||
|
})
|
||||||
|
|
||||||
|
watch(submissionResource, () => {
|
||||||
|
if (submissionResource.doc) {
|
||||||
|
if (submissionResource.doc.assignment_attachment) {
|
||||||
|
imageResource.reload({
|
||||||
|
image: submissionResource.doc.assignment_attachment,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (submissionResource.doc.answer) {
|
||||||
|
answer.value = submissionResource.doc.answer
|
||||||
|
}
|
||||||
|
|
||||||
|
if (submissionResource.isDirty) {
|
||||||
|
isDirty.value = true
|
||||||
|
} else if (showUploader() && !submissionFile.value) {
|
||||||
|
isDirty.value = true
|
||||||
|
} else if (!showUploader() && !answer.value) {
|
||||||
|
isDirty.value = true
|
||||||
|
} else {
|
||||||
|
isDirty.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
watch(submissionFile, () => {
|
||||||
|
if (props.submissionName == 'new' && submissionFile.value) {
|
||||||
|
isDirty.value = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const submitAssignment = () => {
|
||||||
|
if (props.submissionName != 'new') {
|
||||||
|
let evaluator =
|
||||||
|
submissionResource.doc && submissionResource.doc.owner != user.data?.name
|
||||||
|
? user.data?.name
|
||||||
|
: null
|
||||||
|
submissionResource.setValue.submit(
|
||||||
|
{
|
||||||
|
...submissionResource.doc,
|
||||||
|
evaluator: evaluator,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
onSuccess(data) {
|
||||||
|
showToast(__('Success'), __('Changes saved successfully'), 'check')
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
addNewSubmission()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const addNewSubmission = () => {
|
||||||
|
newSubmission.submit(
|
||||||
|
{},
|
||||||
|
{
|
||||||
|
onSuccess(data) {
|
||||||
|
showToast('Success', 'Assignment submitted successfully.', 'check')
|
||||||
|
if (router.currentRoute.value.name == 'AssignmentSubmission') {
|
||||||
|
router.push({
|
||||||
|
name: 'AssignmentSubmission',
|
||||||
|
params: {
|
||||||
|
assignmentID: props.assignmentID,
|
||||||
|
submissionName: data.name,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
markLessonProgress()
|
||||||
|
router.go()
|
||||||
|
}
|
||||||
|
submissionResource.name = data.name
|
||||||
|
submissionResource.reload()
|
||||||
|
},
|
||||||
|
onError(err) {
|
||||||
|
showToast('Error', err.messages?.[0] || err, 'x')
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const saveSubmission = (file) => {
|
||||||
|
submissionFile.value = file
|
||||||
|
}
|
||||||
|
|
||||||
|
const markLessonProgress = () => {
|
||||||
|
if (router.currentRoute.value.name == 'Lesson') {
|
||||||
|
let courseName = router.currentRoute.value.params.courseName
|
||||||
|
let chapterNumber = router.currentRoute.value.params.chapterNumber
|
||||||
|
let lessonNumber = router.currentRoute.value.params.lessonNumber
|
||||||
|
|
||||||
|
call('lms.lms.api.mark_lesson_progress', {
|
||||||
|
course: courseName,
|
||||||
|
chapter_number: chapterNumber,
|
||||||
|
lesson_number: lessonNumber,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const getType = () => {
|
||||||
|
const type = assignment.data?.type
|
||||||
|
if (type == 'Image') {
|
||||||
|
return ['image/*']
|
||||||
|
} else if (type == 'Document') {
|
||||||
|
return [
|
||||||
|
'.doc',
|
||||||
|
'.docx',
|
||||||
|
'.xml',
|
||||||
|
'application/msword',
|
||||||
|
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
||||||
|
]
|
||||||
|
} else if (type == 'PDF') {
|
||||||
|
return ['.pdf']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const validateFile = (file) => {
|
||||||
|
let type = assignment.data?.type
|
||||||
|
let extension = file.name.split('.').pop().toLowerCase()
|
||||||
|
if (type == 'Image' && !['jpg', 'jpeg', 'png'].includes(extension)) {
|
||||||
|
return 'Only image file is allowed.'
|
||||||
|
} else if (
|
||||||
|
type == 'Document' &&
|
||||||
|
!['doc', 'docx', 'xml'].includes(extension)
|
||||||
|
) {
|
||||||
|
return 'Only document file is allowed.'
|
||||||
|
} else if (type == 'PDF' && !['pdf'].includes(extension)) {
|
||||||
|
return 'Only PDF file is allowed.'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const removeSubmission = () => {
|
||||||
|
submissionFile.value = null
|
||||||
|
}
|
||||||
|
|
||||||
|
const canGradeSubmission = computed(() => {
|
||||||
|
return (
|
||||||
|
(user.data?.is_moderator ||
|
||||||
|
user.data?.is_evaluator ||
|
||||||
|
user.data?.is_instructor) &&
|
||||||
|
props.submissionName != 'new' &&
|
||||||
|
router.currentRoute.value.name == 'AssignmentSubmission'
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
const canModifyAssignment = computed(() => {
|
||||||
|
return (
|
||||||
|
!submissionResource.doc ||
|
||||||
|
(submissionResource.doc?.owner == user.data?.name &&
|
||||||
|
submissionResource.doc?.status == 'Not Graded')
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
const submissionStatusOptions = computed(() => {
|
||||||
|
return [
|
||||||
|
{ label: 'Not Graded', value: 'Not Graded' },
|
||||||
|
{ label: 'Pass', value: 'Pass' },
|
||||||
|
{ label: 'Fail', value: 'Fail' },
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
const statusTheme = computed(() => {
|
||||||
|
if (!submissionResource.doc) {
|
||||||
|
return 'orange'
|
||||||
|
} else if (submissionResource.doc.status == 'Pass') {
|
||||||
|
return 'green'
|
||||||
|
} else if (submissionResource.doc.status == 'Not Graded') {
|
||||||
|
return 'blue'
|
||||||
|
} else {
|
||||||
|
return 'red'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const showUploader = () => {
|
||||||
|
return ['PDF', 'Image', 'Document'].includes(assignment.data?.type)
|
||||||
|
}
|
||||||
|
</script>
|
||||||
46
frontend/src/components/AssignmentBlock.vue
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
<template>
|
||||||
|
<Assignment
|
||||||
|
v-if="user.data && submission.data"
|
||||||
|
:assignmentID="assignmentID"
|
||||||
|
:submissionName="submission.data?.name || 'new'"
|
||||||
|
/>
|
||||||
|
<div v-else class="border rounded-md text-center py-20">
|
||||||
|
<div>
|
||||||
|
{{ __('Please login to access the assignment.') }}
|
||||||
|
</div>
|
||||||
|
<Button @click="redirectToLogin()" class="mt-2">
|
||||||
|
<span>
|
||||||
|
{{ __('Login') }}
|
||||||
|
</span>
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import { inject, watch } from 'vue'
|
||||||
|
import { Button, createResource } from 'frappe-ui'
|
||||||
|
import Assignment from '@/components/Assignment.vue'
|
||||||
|
|
||||||
|
const user = inject('$user')
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
assignmentID: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const submission = createResource({
|
||||||
|
url: 'frappe.client.get_value',
|
||||||
|
makeParams(values) {
|
||||||
|
return {
|
||||||
|
doctype: 'LMS Assignment Submission',
|
||||||
|
fieldname: 'name',
|
||||||
|
filters: {
|
||||||
|
assignment: props.assignmentID,
|
||||||
|
member: user.data?.name,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
auto: true,
|
||||||
|
})
|
||||||
|
</script>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="flex items-center justify-between mb-4">
|
<div class="flex items-center justify-between mb-4">
|
||||||
<div class="text-xl font-semibold">
|
<div class="text-lg font-semibold">
|
||||||
{{ __('Courses') }}
|
{{ __('Courses') }}
|
||||||
</div>
|
</div>
|
||||||
<Button v-if="canSeeAddButton()" @click="openCourseModal()">
|
<Button v-if="canSeeAddButton()" @click="openCourseModal()">
|
||||||
@@ -118,13 +118,13 @@ const getCoursesColumns = () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Lessons',
|
label: 'Lessons',
|
||||||
key: 'lesson_count',
|
key: 'lessons',
|
||||||
align: 'right',
|
align: 'right',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Enrollments',
|
label: 'Enrollments',
|
||||||
align: 'right',
|
align: 'right',
|
||||||
key: 'enrollment_count',
|
key: 'enrollments',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,35 +1,129 @@
|
|||||||
<template>
|
<template>
|
||||||
<Button class="float-right mb-3" @click="openStudentModal()">
|
<div class="">
|
||||||
|
<div class="w-full flex items-center justify-between pb-4">
|
||||||
|
<div class="font-medium text-gray-600">
|
||||||
|
{{ __('Statistics') }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="grid grid-cols-3 gap-5 mb-8">
|
||||||
|
<div class="flex items-center shadow py-2 px-3 rounded-md">
|
||||||
|
<div class="p-2 rounded-md bg-gray-100 mr-3">
|
||||||
|
<User class="w-18 h-18 stroke-1.5 text-gray-700" />
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<span class="text-xl font-semibold mb-1">
|
||||||
|
{{ students.data?.length }}
|
||||||
|
</span>
|
||||||
|
<span class="text-gray-700">
|
||||||
|
{{ __('Students') }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-center shadow py-2 px-3 rounded-md">
|
||||||
|
<div class="p-2 rounded-md bg-gray-100 mr-3">
|
||||||
|
<BookOpen class="w-18 h-18 stroke-1.5 text-gray-700" />
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<span class="text-xl font-semibold mb-1">
|
||||||
|
{{ batch.courses?.length }}
|
||||||
|
</span>
|
||||||
|
<span class="text-gray-700">
|
||||||
|
{{ __('Courses') }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-center shadow py-2 px-3 rounded-md">
|
||||||
|
<div class="p-2 rounded-md bg-gray-100 mr-3">
|
||||||
|
<ShieldCheck class="w-18 h-18 stroke-1.5 text-gray-700" />
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-col">
|
||||||
|
<span class="text-xl font-semibold mb-1">
|
||||||
|
{{ assessmentCount }}
|
||||||
|
</span>
|
||||||
|
<span class="text-gray-700">
|
||||||
|
{{ __('Assessments') }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-8">
|
||||||
|
<div class="text-gray-600 font-medium">
|
||||||
|
{{ __('Progress') }}
|
||||||
|
</div>
|
||||||
|
<ApexChart
|
||||||
|
v-if="showProgressChart"
|
||||||
|
:options="chartOptions"
|
||||||
|
:series="chartData"
|
||||||
|
type="bar"
|
||||||
|
height="350"
|
||||||
|
/>
|
||||||
|
<div
|
||||||
|
class="flex items-center justify-center text-sm text-gray-700 space-x-4"
|
||||||
|
>
|
||||||
|
<div class="flex items-center space-x-2">
|
||||||
|
<div class="w-3 h-3" style="background-color: #0f736b"></div>
|
||||||
|
<div>
|
||||||
|
{{ __('Courses') }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-center space-x-2">
|
||||||
|
<div class="w-3 h-3" style="background-color: #0070cc"></div>
|
||||||
|
<div>
|
||||||
|
{{ __('Assessments') }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class="flex items-center justify-between mb-4">
|
||||||
|
<div class="text-gray-600 font-medium">
|
||||||
|
{{ __('Students') }}
|
||||||
|
</div>
|
||||||
|
<Button @click="openStudentModal()">
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<Plus class="h-4 w-4" />
|
<Plus class="h-4 w-4" />
|
||||||
</template>
|
</template>
|
||||||
{{ __('Add') }}
|
{{ __('Add') }}
|
||||||
</Button>
|
</Button>
|
||||||
<div class="text-lg font-semibold mb-4">
|
|
||||||
{{ __('Students') }}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="students.data?.length">
|
<div v-if="students.data?.length">
|
||||||
<ListView
|
<ListView
|
||||||
:columns="getStudentColumns()"
|
:columns="getStudentColumns()"
|
||||||
:rows="students.data"
|
:rows="students.data"
|
||||||
row-key="name"
|
row-key="name"
|
||||||
:options="{ showTooltip: false }"
|
:options="{
|
||||||
|
showTooltip: false,
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
<ListHeader
|
<ListHeader
|
||||||
class="mb-2 grid items-center space-x-4 rounded bg-gray-100 p-2"
|
class="mb-2 grid items-center space-x-4 rounded bg-gray-100 p-2"
|
||||||
>
|
>
|
||||||
<ListHeaderItem :item="item" v-for="item in getStudentColumns()">
|
<ListHeaderItem
|
||||||
|
:item="item"
|
||||||
|
v-for="item in getStudentColumns()"
|
||||||
|
:title="item.label"
|
||||||
|
>
|
||||||
<template #prefix="{ item }">
|
<template #prefix="{ item }">
|
||||||
<component
|
<FeatherIcon
|
||||||
v-if="item.icon"
|
v-if="item.icon"
|
||||||
:is="item.icon"
|
:name="item.icon"
|
||||||
class="h-4 w-4 stroke-1.5 ml-4"
|
class="h-4 w-4 stroke-1.5"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</ListHeaderItem>
|
</ListHeaderItem>
|
||||||
</ListHeader>
|
</ListHeader>
|
||||||
<ListRows>
|
<ListRows>
|
||||||
<ListRow :row="row" v-for="row in students.data">
|
<ListRow
|
||||||
|
:row="row"
|
||||||
|
v-for="row in students.data"
|
||||||
|
class="group cursor-pointer"
|
||||||
|
@click="openStudentProgressModal(row)"
|
||||||
|
>
|
||||||
<template #default="{ column, item }">
|
<template #default="{ column, item }">
|
||||||
<ListRowItem :item="row[column.key]" :align="column.align">
|
<ListRowItem :item="row[column.key]" :align="column.align">
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
@@ -42,7 +136,23 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div>
|
<div
|
||||||
|
v-if="column.key == 'progress'"
|
||||||
|
class="flex items-center space-x-4 w-full"
|
||||||
|
>
|
||||||
|
<ProgressBar :progress="row[column.key]" size="sm" />
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-else-if="column.key == 'copy'"
|
||||||
|
class="invisible group-hover:visible"
|
||||||
|
>
|
||||||
|
<Button variant="ghost" @click="copyEmail(row)">
|
||||||
|
<template #icon>
|
||||||
|
<Clipboard class="h-4 w-4 stroke-1.5" />
|
||||||
|
</template>
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
{{ row[column.key] }}
|
{{ row[column.key] }}
|
||||||
</div>
|
</div>
|
||||||
</ListRowItem>
|
</ListRowItem>
|
||||||
@@ -66,15 +176,24 @@
|
|||||||
<div v-else class="text-sm italic text-gray-600">
|
<div v-else class="text-sm italic text-gray-600">
|
||||||
{{ __('There are no students in this batch.') }}
|
{{ __('There are no students in this batch.') }}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<StudentModal
|
<StudentModal
|
||||||
:batch="props.batch"
|
:batch="props.batch.name"
|
||||||
v-model="showStudentModal"
|
v-model="showStudentModal"
|
||||||
v-model:reloadStudents="students"
|
v-model:reloadStudents="students"
|
||||||
/>
|
/>
|
||||||
|
<BatchStudentProgress
|
||||||
|
:student="selectedStudent"
|
||||||
|
v-model="showStudentProgressModal"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import {
|
import {
|
||||||
|
Avatar,
|
||||||
|
Button,
|
||||||
createResource,
|
createResource,
|
||||||
|
FeatherIcon,
|
||||||
ListHeader,
|
ListHeader,
|
||||||
ListHeaderItem,
|
ListHeaderItem,
|
||||||
ListSelectBanner,
|
ListSelectBanner,
|
||||||
@@ -82,60 +201,89 @@ import {
|
|||||||
ListRows,
|
ListRows,
|
||||||
ListView,
|
ListView,
|
||||||
ListRowItem,
|
ListRowItem,
|
||||||
Avatar,
|
|
||||||
Button,
|
|
||||||
} from 'frappe-ui'
|
} from 'frappe-ui'
|
||||||
import { Trash2, Plus } from 'lucide-vue-next'
|
import {
|
||||||
import { ref } from 'vue'
|
BookOpen,
|
||||||
|
Clipboard,
|
||||||
|
Plus,
|
||||||
|
ShieldCheck,
|
||||||
|
Trash2,
|
||||||
|
User,
|
||||||
|
} from 'lucide-vue-next'
|
||||||
|
import { ref, watch } from 'vue'
|
||||||
import StudentModal from '@/components/Modals/StudentModal.vue'
|
import StudentModal from '@/components/Modals/StudentModal.vue'
|
||||||
import { showToast } from '@/utils'
|
import { showToast } from '@/utils'
|
||||||
|
import ProgressBar from '@/components/ProgressBar.vue'
|
||||||
|
import BatchStudentProgress from '@/components/Modals/BatchStudentProgress.vue'
|
||||||
|
import ApexChart from 'vue3-apexcharts'
|
||||||
|
|
||||||
const showStudentModal = ref(false)
|
const showStudentModal = ref(false)
|
||||||
|
const showStudentProgressModal = ref(false)
|
||||||
|
const selectedStudent = ref(null)
|
||||||
|
const chartData = ref(null)
|
||||||
|
const chartOptions = ref(null)
|
||||||
|
const showProgressChart = ref(false)
|
||||||
|
const assessmentCount = ref(0)
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
batch: {
|
batch: {
|
||||||
type: String,
|
type: Object,
|
||||||
default: null,
|
default: null,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const students = createResource({
|
const students = createResource({
|
||||||
url: 'lms.lms.utils.get_batch_students',
|
url: 'lms.lms.utils.get_batch_students',
|
||||||
cache: ['students', props.batch],
|
cache: ['students', props.batch.name],
|
||||||
params: {
|
params: {
|
||||||
batch: props.batch,
|
batch: props.batch?.name,
|
||||||
},
|
},
|
||||||
auto: true,
|
auto: true,
|
||||||
|
onSuccess(data) {
|
||||||
|
chartData.value = getChartData()
|
||||||
|
showProgressChart.value = true
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const getStudentColumns = () => {
|
const getStudentColumns = () => {
|
||||||
return [
|
let columns = [
|
||||||
{
|
{
|
||||||
label: 'Full Name',
|
label: 'Full Name',
|
||||||
key: 'full_name',
|
key: 'full_name',
|
||||||
width: 2,
|
width: '20rem',
|
||||||
|
icon: 'user',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Courses Done',
|
label: 'Progress',
|
||||||
key: 'courses_completed',
|
key: 'progress',
|
||||||
align: 'center',
|
width: '10rem',
|
||||||
},
|
icon: 'activity',
|
||||||
{
|
|
||||||
label: 'Assessments Done',
|
|
||||||
key: 'assessments_completed',
|
|
||||||
align: 'center',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Last Active',
|
label: 'Last Active',
|
||||||
key: 'last_active',
|
key: 'last_active',
|
||||||
|
width: '15rem',
|
||||||
|
align: 'center',
|
||||||
|
icon: 'clock',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '',
|
||||||
|
key: 'copy',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
return columns
|
||||||
}
|
}
|
||||||
|
|
||||||
const openStudentModal = () => {
|
const openStudentModal = () => {
|
||||||
showStudentModal.value = true
|
showStudentModal.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const openStudentProgressModal = (row) => {
|
||||||
|
showStudentProgressModal.value = true
|
||||||
|
selectedStudent.value = row
|
||||||
|
}
|
||||||
|
|
||||||
const deleteStudents = createResource({
|
const deleteStudents = createResource({
|
||||||
url: 'lms.lms.api.delete_documents',
|
url: 'lms.lms.api.delete_documents',
|
||||||
makeParams(values) {
|
makeParams(values) {
|
||||||
@@ -160,4 +308,110 @@ const removeStudents = (selections, unselectAll) => {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getChartData = () => {
|
||||||
|
let categories = {}
|
||||||
|
|
||||||
|
Object.keys(students.data?.[0].courses).forEach((course) => {
|
||||||
|
categories[course] = {
|
||||||
|
value: 0,
|
||||||
|
type: 'course',
|
||||||
|
label: course,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Object.keys(students.data?.[0].assessments).forEach((assessment) => {
|
||||||
|
categories[assessment] = {
|
||||||
|
value: 0,
|
||||||
|
type: 'assessment',
|
||||||
|
label: assessment,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
students.data.forEach((student) => {
|
||||||
|
Object.keys(student.courses).forEach((course) => {
|
||||||
|
if (student.courses[course] === 100) {
|
||||||
|
categories[course].value += 1
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Object.keys(student.assessments).forEach((assessment) => {
|
||||||
|
if (student.assessments[assessment] === 100) {
|
||||||
|
categories[assessment].value += 1
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
chartOptions.value = getChartOptions(categories)
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
name: __('Completed by Students'),
|
||||||
|
data: Object.values(categories).map((item) => item.value),
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
const getChartOptions = (categories) => {
|
||||||
|
const courseColor = '#0F736B'
|
||||||
|
const assessmentColor = '#0070CC'
|
||||||
|
const maxY =
|
||||||
|
students.data?.length % 5
|
||||||
|
? students.data?.length + (5 - (students.data?.length % 5))
|
||||||
|
: students.data?.length
|
||||||
|
|
||||||
|
return {
|
||||||
|
chart: {
|
||||||
|
type: 'bar',
|
||||||
|
height: 50,
|
||||||
|
toolbar: {
|
||||||
|
show: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plotOptions: {
|
||||||
|
bar: {
|
||||||
|
distributed: true,
|
||||||
|
borderRadius: 0,
|
||||||
|
horizontal: true,
|
||||||
|
barHeight: '30%',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
colors: Object.values(categories).map((item) =>
|
||||||
|
item.type === 'course' ? courseColor : assessmentColor
|
||||||
|
),
|
||||||
|
xaxis: {
|
||||||
|
categories: Object.values(categories).map((item) => item.label),
|
||||||
|
labels: {
|
||||||
|
style: {
|
||||||
|
fontSize: '10px',
|
||||||
|
},
|
||||||
|
rotate: 0,
|
||||||
|
formatter: function (value) {
|
||||||
|
return value.length > 20 ? `${value.substring(0, 20)}...` : value // Trim long labels
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
yaxis: {
|
||||||
|
max: maxY,
|
||||||
|
min: 0,
|
||||||
|
stepSize: 10,
|
||||||
|
tickAmount: maxY / 5,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const copyEmail = (row) => {
|
||||||
|
navigator.clipboard.writeText(row.email)
|
||||||
|
showToast(__('Success'), __('Email copied to clipboard'), 'check')
|
||||||
|
}
|
||||||
|
|
||||||
|
watch(students, () => {
|
||||||
|
if (students.data?.length) {
|
||||||
|
assessmentCount.value = Object.keys(students.data?.[0].assessments).length
|
||||||
|
}
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
|
.apexcharts-legend {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|||||||
@@ -29,8 +29,8 @@
|
|||||||
<slot name="item-label" v-bind="{ active, selected, option }" />
|
<slot name="item-label" v-bind="{ active, selected, option }" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-if="attrs.onCreate" #footer="{ value, close }">
|
<template #footer="{ value, close }">
|
||||||
<div>
|
<div v-if="attrs.onCreate">
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
class="w-full !justify-start"
|
class="w-full !justify-start"
|
||||||
@@ -42,6 +42,18 @@
|
|||||||
</template>
|
</template>
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
class="w-full !justify-start"
|
||||||
|
:label="__('Clear')"
|
||||||
|
@click="() => clearValue(close)"
|
||||||
|
>
|
||||||
|
<template #prefix>
|
||||||
|
<X class="h-4 w-4 stroke-1.5" />
|
||||||
|
</template>
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</Autocomplete>
|
</Autocomplete>
|
||||||
<p v-if="description" class="text-sm text-gray-600">{{ description }}</p>
|
<p v-if="description" class="text-sm text-gray-600">{{ description }}</p>
|
||||||
@@ -52,7 +64,7 @@
|
|||||||
import Autocomplete from '@/components/Controls/Autocomplete.vue'
|
import Autocomplete from '@/components/Controls/Autocomplete.vue'
|
||||||
import { watchDebounced } from '@vueuse/core'
|
import { watchDebounced } from '@vueuse/core'
|
||||||
import { createResource, Button } from 'frappe-ui'
|
import { createResource, Button } from 'frappe-ui'
|
||||||
import { Plus } from 'lucide-vue-next'
|
import { Plus, X } from 'lucide-vue-next'
|
||||||
import { useAttrs, computed, ref } from 'vue'
|
import { useAttrs, computed, ref } from 'vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
@@ -75,9 +87,7 @@ const props = defineProps({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const emit = defineEmits(['update:modelValue', 'change'])
|
const emit = defineEmits(['update:modelValue', 'change'])
|
||||||
|
|
||||||
const attrs = useAttrs()
|
const attrs = useAttrs()
|
||||||
|
|
||||||
const valuePropPassed = computed(() => 'value' in attrs)
|
const valuePropPassed = computed(() => 'value' in attrs)
|
||||||
|
|
||||||
const value = computed({
|
const value = computed({
|
||||||
@@ -131,7 +141,7 @@ const options = createResource({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
function reload(val) {
|
const reload = (val) => {
|
||||||
options.update({
|
options.update({
|
||||||
params: {
|
params: {
|
||||||
txt: val,
|
txt: val,
|
||||||
@@ -142,6 +152,11 @@ function reload(val) {
|
|||||||
options.reload()
|
options.reload()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const clearValue = (close) => {
|
||||||
|
emit(valuePropPassed.value ? 'change' : 'update:modelValue', '')
|
||||||
|
close()
|
||||||
|
}
|
||||||
|
|
||||||
const labelClasses = computed(() => {
|
const labelClasses = computed(() => {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
|
|
||||||
<div v-if="course.status != 'Approved'">
|
<div v-if="course.status != 'Approved'">
|
||||||
<Badge
|
<Badge
|
||||||
variant="solid"
|
variant="subtle"
|
||||||
:theme="course.status === 'Under Review' ? 'orange' : 'blue'"
|
:theme="course.status === 'Under Review' ? 'orange' : 'blue'"
|
||||||
size="sm"
|
size="sm"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -87,25 +87,29 @@
|
|||||||
</span>
|
</span>
|
||||||
</Button>
|
</Button>
|
||||||
</router-link>
|
</router-link>
|
||||||
<div class="mt-8 mb-4 font-medium">
|
<div class="space-y-4">
|
||||||
|
<div class="mt-8 font-medium">
|
||||||
{{ __('This course has:') }}
|
{{ __('This course has:') }}
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center mb-3">
|
<div class="flex items-center">
|
||||||
<BookOpen class="h-5 w-5 stroke-1.5 text-gray-600" />
|
<BookOpen class="h-4 w-4 stroke-1.5 text-gray-600" />
|
||||||
<span class="ml-2">
|
<span class="ml-2">
|
||||||
{{ course.data.lessons }} {{ __('Lessons') }}
|
{{ course.data.lessons }} {{ __('Lessons') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center mb-3">
|
<div class="flex items-center">
|
||||||
<Users class="h-5 w-5 stroke-1.5 text-gray-600" />
|
<Users class="h-4 w-4 stroke-1.5 text-gray-600" />
|
||||||
<span class="ml-2">
|
<span class="ml-2">
|
||||||
{{ formatAmount(course.data.enrollments) }}
|
{{ formatAmount(course.data.enrollments) }}
|
||||||
{{ __('Enrolled Students') }}
|
{{ __('Enrolled Students') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex items-center">
|
<div v-if="parseInt(course.data.rating) > 0" class="flex items-center">
|
||||||
<Star class="h-5 w-5 stroke-1.5 fill-orange-500 text-gray-50" />
|
<Star class="h-4 w-4 stroke-1.5 fill-orange-500 text-gray-50" />
|
||||||
<span class="ml-2"> {{ course.data.rating }} {{ __('Rating') }} </span>
|
<span class="ml-2">
|
||||||
|
{{ course.data.rating }} {{ __('Rating') }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,20 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="space-y-5">
|
<div class="space-y-5">
|
||||||
|
<div class="space-y-2">
|
||||||
|
<div class="flex items-center text-sm font-medium space-x-2">
|
||||||
|
<span>
|
||||||
|
{{ __('What does include in preview mean?') }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="text-xs text-gray-600 mb-1 leading-5">
|
||||||
|
{{
|
||||||
|
__(
|
||||||
|
'If Include in Preview is enabled for a lesson then the lesson will also be accessible to non logged in users.'
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="space-y-2">
|
<div class="space-y-2">
|
||||||
<div
|
<div
|
||||||
class="flex items-center text-sm font-medium space-x-2 cursor-pointer"
|
class="flex items-center text-sm font-medium space-x-2 cursor-pointer"
|
||||||
@@ -56,21 +71,6 @@
|
|||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="space-y-2">
|
|
||||||
<div class="flex items-center text-sm font-medium space-x-2">
|
|
||||||
<span>
|
|
||||||
{{ __('What does include in preview mean?') }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="text-xs text-gray-600 mb-1 leading-5">
|
|
||||||
{{
|
|
||||||
__(
|
|
||||||
'If Include in Preview is enabled for a lesson then the lesson will also be accessible to non logged in users.'
|
|
||||||
)
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<ExplanationVideos v-model="showExplanation" :title="title" :type="type" />
|
<ExplanationVideos v-model="showExplanation" :title="title" :type="type" />
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
113
frontend/src/components/Modals/BatchStudentProgress.vue
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
<template>
|
||||||
|
<Dialog v-model="show" :options="{}">
|
||||||
|
<template #body>
|
||||||
|
<div class="p-5 space-y-8 text-base">
|
||||||
|
<div class="flex items-center space-x-2">
|
||||||
|
<Avatar :image="student.user_image" size="3xl" />
|
||||||
|
<div class="space-y-1">
|
||||||
|
<div class="flex items-center space-x-2">
|
||||||
|
<div class="text-xl font-semibold">
|
||||||
|
{{ student.full_name }}
|
||||||
|
</div>
|
||||||
|
<Badge :theme="student.progress === 100 ? 'green' : 'red'">
|
||||||
|
{{ student.progress }}% {{ __('Complete') }}
|
||||||
|
</Badge>
|
||||||
|
</div>
|
||||||
|
<div class="text-sm text-gray-700">
|
||||||
|
{{ student.email }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Assessments -->
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="grid grid-cols-[70%,30%] border-b pl-2 pb-1 mb-2 text-xs text-gray-700 font-medium"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
{{ __('Assessment') }}
|
||||||
|
</span>
|
||||||
|
<span>
|
||||||
|
{{ __('Progress') }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-for="assessment in Object.keys(student.assessments)"
|
||||||
|
class="grid grid-cols-[70%,30%] pl-2 mb-2 text-gray-700 font-medium"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
{{ assessment }}
|
||||||
|
</span>
|
||||||
|
<span v-if="isAssignment(student.assessments[assessment])">
|
||||||
|
<Badge :theme="getStatusTheme(student.assessments[assessment])">
|
||||||
|
{{ student.assessments[assessment] }}
|
||||||
|
</Badge>
|
||||||
|
</span>
|
||||||
|
<span v-else>
|
||||||
|
{{ student.assessments[assessment] }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Courses -->
|
||||||
|
<div>
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="grid grid-cols-[70%,30%] mb-2 text-xs text-gray-700 border-b pl-2 pb-1 font-medium"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
{{ __('Courses') }}
|
||||||
|
</span>
|
||||||
|
<span>
|
||||||
|
{{ __('Progress') }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-for="course in Object.keys(student.courses)"
|
||||||
|
class="grid grid-cols-[70%,30%] pl-2 mb-2 text-gray-700 font-medium"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
{{ course }}
|
||||||
|
</span>
|
||||||
|
<span>
|
||||||
|
{{ Math.floor(student.courses[course]) }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- <span class="mt-4">
|
||||||
|
{{ student }}
|
||||||
|
</span> -->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</Dialog>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import { Avatar, Badge, Dialog } from 'frappe-ui'
|
||||||
|
import ProgressBar from '@/components/ProgressBar.vue'
|
||||||
|
|
||||||
|
const show = defineModel()
|
||||||
|
const props = defineProps({
|
||||||
|
student: {
|
||||||
|
type: Object,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const isAssignment = (value) => {
|
||||||
|
return isNaN(value)
|
||||||
|
}
|
||||||
|
|
||||||
|
const getStatusTheme = (status) => {
|
||||||
|
if (status === 'Pass') {
|
||||||
|
return 'green'
|
||||||
|
} else if (status == 'Not Graded') {
|
||||||
|
return 'orange'
|
||||||
|
} else {
|
||||||
|
return 'red'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -26,7 +26,7 @@ const props = defineProps({
|
|||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
title: {
|
title: {
|
||||||
type: String,
|
type: [String, null],
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
import { Dialog, createResource } from 'frappe-ui'
|
import { Dialog, createResource } from 'frappe-ui'
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import Link from '@/components/Controls/Link.vue'
|
import Link from '@/components/Controls/Link.vue'
|
||||||
|
import { showToast } from '@/utils'
|
||||||
|
|
||||||
const students = defineModel('reloadStudents')
|
const students = defineModel('reloadStudents')
|
||||||
const student = ref()
|
const student = ref()
|
||||||
@@ -61,8 +62,11 @@ const addStudent = (close) => {
|
|||||||
{
|
{
|
||||||
onSuccess() {
|
onSuccess() {
|
||||||
students.value.reload()
|
students.value.reload()
|
||||||
close()
|
|
||||||
student.value = null
|
student.value = null
|
||||||
|
close()
|
||||||
|
},
|
||||||
|
onError(err) {
|
||||||
|
showToast(__('Error'), __(err.messages?.[0] || err), 'x')
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,24 +1,44 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<Tooltip :text="`${props.progress}%`">
|
||||||
<div class="w-full bg-gray-200 rounded-full h-1 my-2">
|
<div class="w-full bg-gray-200 rounded-full h-1 my-2">
|
||||||
<div
|
<div
|
||||||
class="bg-gray-900 h-1 rounded-full"
|
class="bg-gray-900 rounded-full"
|
||||||
|
:class="progressBarHeight"
|
||||||
:style="{ width: progressBarWidth }"
|
:style="{ width: progressBarWidth }"
|
||||||
></div>
|
></div>
|
||||||
</div>
|
</div>
|
||||||
|
</Tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
import { Tooltip } from 'frappe-ui'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
progress: {
|
progress: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0,
|
default: 0,
|
||||||
},
|
},
|
||||||
|
size: {
|
||||||
|
type: String,
|
||||||
|
default: 'sm',
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const progressBarWidth = computed(() => {
|
const progressBarWidth = computed(() => {
|
||||||
const formattedPercentage = Math.min(Math.ceil(props.progress), 100)
|
const formattedPercentage = Math.min(Math.ceil(props.progress), 100)
|
||||||
return `${formattedPercentage}%`
|
return `${formattedPercentage}%`
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const progressBarHeight = computed(() => {
|
||||||
|
if (props.size === 'sm') {
|
||||||
|
return 'h-1'
|
||||||
|
}
|
||||||
|
if (props.size === 'md') {
|
||||||
|
return 'h-2'
|
||||||
|
}
|
||||||
|
if (props.size === 'lg') {
|
||||||
|
return 'h-3'
|
||||||
|
}
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -118,15 +118,17 @@
|
|||||||
class="w-3.5 h-3.5 text-gray-900 rounded-sm focus:ring-gray-200"
|
class="w-3.5 h-3.5 text-gray-900 rounded-sm focus:ring-gray-200"
|
||||||
@change="markAnswer(index)"
|
@change="markAnswer(index)"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
v-else-if="quiz.data.show_answers"
|
v-else-if="quiz.data.show_answers"
|
||||||
v-for="(answer, idx) in showAnswers"
|
v-for="(answer, idx) in showAnswers"
|
||||||
>
|
>
|
||||||
<div v-if="index - 1 == idx">
|
<div v-if="index - 1 == idx">
|
||||||
<CheckCircle v-if="answer" class="w-4 h-4 text-green-500" />
|
<CheckCircle
|
||||||
|
v-if="answer == 1"
|
||||||
|
class="w-4 h-4 text-green-500"
|
||||||
|
/>
|
||||||
<MinusCircle
|
<MinusCircle
|
||||||
v-else-if="questionDetails.data[`is_correct_${index}`]"
|
v-else-if="answer == 2"
|
||||||
class="w-4 h-4 text-green-500"
|
class="w-4 h-4 text-green-500"
|
||||||
/>
|
/>
|
||||||
<XCircle
|
<XCircle
|
||||||
@@ -271,6 +273,7 @@
|
|||||||
import {
|
import {
|
||||||
Badge,
|
Badge,
|
||||||
Button,
|
Button,
|
||||||
|
call,
|
||||||
createResource,
|
createResource,
|
||||||
ListView,
|
ListView,
|
||||||
TextEditor,
|
TextEditor,
|
||||||
@@ -280,6 +283,7 @@ import { ref, watch, reactive, inject, computed } from 'vue'
|
|||||||
import { createToast } from '@/utils/'
|
import { createToast } from '@/utils/'
|
||||||
import { CheckCircle, XCircle, MinusCircle } from 'lucide-vue-next'
|
import { CheckCircle, XCircle, MinusCircle } from 'lucide-vue-next'
|
||||||
import { timeAgo } from '@/utils'
|
import { timeAgo } from '@/utils'
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
import ProgressBar from '@/components/ProgressBar.vue'
|
import ProgressBar from '@/components/ProgressBar.vue'
|
||||||
|
|
||||||
const user = inject('$user')
|
const user = inject('$user')
|
||||||
@@ -291,6 +295,7 @@ let questions = reactive([])
|
|||||||
const possibleAnswer = ref(null)
|
const possibleAnswer = ref(null)
|
||||||
const timer = ref(0)
|
const timer = ref(0)
|
||||||
let timerInterval = null
|
let timerInterval = null
|
||||||
|
const router = useRouter()
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
quizName: {
|
quizName: {
|
||||||
@@ -496,8 +501,8 @@ const checkAnswer = () => {
|
|||||||
selectedOptions.forEach((option, index) => {
|
selectedOptions.forEach((option, index) => {
|
||||||
if (option) {
|
if (option) {
|
||||||
showAnswers[index] = option && data[index]
|
showAnswers[index] = option && data[index]
|
||||||
} else if (questionDetails.data[`is_correct_${index + 1}`]) {
|
} else if (data[index] == 2) {
|
||||||
showAnswers[index] = 0
|
showAnswers[index] = 2
|
||||||
} else {
|
} else {
|
||||||
showAnswers[index] = undefined
|
showAnswers[index] = undefined
|
||||||
}
|
}
|
||||||
@@ -560,6 +565,7 @@ const createSubmission = () => {
|
|||||||
{},
|
{},
|
||||||
{
|
{
|
||||||
onSuccess(data) {
|
onSuccess(data) {
|
||||||
|
markLessonProgress()
|
||||||
if (quiz.data && quiz.data.max_attempts) attempts.reload()
|
if (quiz.data && quiz.data.max_attempts) attempts.reload()
|
||||||
if (quiz.data.duration) clearInterval(timerInterval)
|
if (quiz.data.duration) clearInterval(timerInterval)
|
||||||
},
|
},
|
||||||
@@ -583,6 +589,16 @@ const getInstructions = (question) => {
|
|||||||
else return __('Type your answer')
|
else return __('Type your answer')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const markLessonProgress = () => {
|
||||||
|
if (router.currentRoute.value.name == 'Lesson') {
|
||||||
|
call('lms.lms.api.mark_lesson_progress', {
|
||||||
|
course: router.currentRoute.value.params.courseName,
|
||||||
|
chapter_number: router.currentRoute.value.params.chapterNumber,
|
||||||
|
lesson_number: router.currentRoute.value.params.lessonNumber,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const getSubmissionColumns = () => {
|
const getSubmissionColumns = () => {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,58 +0,0 @@
|
|||||||
<template>
|
|
||||||
<Dialog
|
|
||||||
v-model="show"
|
|
||||||
:options="{
|
|
||||||
size: 'xl',
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
<template #body>
|
|
||||||
<div class="p-5 space-y-4">
|
|
||||||
<div class="text-lg font-semibold">
|
|
||||||
{{ __('Add a quiz to your lesson') }}
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<Link
|
|
||||||
v-model="quiz"
|
|
||||||
doctype="LMS Quiz"
|
|
||||||
:label="__('Select a quiz')"
|
|
||||||
:onCreate="(value, close) => redirectToQuizForm()"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="flex justify-end space-x-2">
|
|
||||||
<Button variant="solid" @click="addQuiz()">
|
|
||||||
{{ __('Save') }}
|
|
||||||
</Button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</Dialog>
|
|
||||||
</template>
|
|
||||||
<script setup>
|
|
||||||
import { Dialog, Button } from 'frappe-ui'
|
|
||||||
import { onMounted, ref, nextTick } from 'vue'
|
|
||||||
import Link from '@/components/Controls/Link.vue'
|
|
||||||
|
|
||||||
const show = ref(false)
|
|
||||||
const quiz = ref(null)
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
onQuizAddition: {
|
|
||||||
type: Function,
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
onMounted(async () => {
|
|
||||||
await nextTick()
|
|
||||||
show.value = true
|
|
||||||
})
|
|
||||||
|
|
||||||
const addQuiz = () => {
|
|
||||||
props.onQuizAddition(quiz.value)
|
|
||||||
show.value = false
|
|
||||||
}
|
|
||||||
|
|
||||||
const redirectToQuizForm = () => {
|
|
||||||
window.open('/lms/quizzes/new', '_blank')
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
191
frontend/src/pages/AssignmentForm.vue
Normal file
@@ -0,0 +1,191 @@
|
|||||||
|
<template>
|
||||||
|
<header
|
||||||
|
class="sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5"
|
||||||
|
>
|
||||||
|
<Breadcrumbs :items="breadcrumbs" />
|
||||||
|
<div class="space-x-2">
|
||||||
|
<router-link
|
||||||
|
v-if="assignment.doc?.name"
|
||||||
|
:to="{
|
||||||
|
name: 'AssignmentSubmissionList',
|
||||||
|
query: {
|
||||||
|
assignmentID: assignment.doc.name,
|
||||||
|
},
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<Button>
|
||||||
|
{{ __('Submission List') }}
|
||||||
|
</Button>
|
||||||
|
</router-link>
|
||||||
|
<Button variant="solid" @click="saveAssignment()">
|
||||||
|
{{ __('Save') }}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<div class="w-3/4 mx-auto py-5">
|
||||||
|
<div class="font-semibold mb-4">
|
||||||
|
{{ __('Details') }}
|
||||||
|
</div>
|
||||||
|
<div class="grid grid-cols-2 gap-5 mt-4 mb-8">
|
||||||
|
<FormControl
|
||||||
|
v-model="model.title"
|
||||||
|
:label="__('Title')"
|
||||||
|
:required="true"
|
||||||
|
/>
|
||||||
|
<FormControl
|
||||||
|
v-model="model.type"
|
||||||
|
type="select"
|
||||||
|
:options="assignmentOptions"
|
||||||
|
:label="__('Type')"
|
||||||
|
:required="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="text-xs text-gray-600 mb-2">
|
||||||
|
{{ __('Question') }}
|
||||||
|
<span class="text-ink-red-3">*</span>
|
||||||
|
</div>
|
||||||
|
<TextEditor
|
||||||
|
:content="model.question"
|
||||||
|
@change="(val) => (model.question = val)"
|
||||||
|
:editable="true"
|
||||||
|
:fixedMenu="true"
|
||||||
|
editorClass="prose-sm max-w-none border-b border-x bg-gray-100 rounded-b-md py-1 px-2 min-h-[7rem]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
Breadcrumbs,
|
||||||
|
Button,
|
||||||
|
createDocumentResource,
|
||||||
|
createResource,
|
||||||
|
FormControl,
|
||||||
|
TextEditor,
|
||||||
|
} from 'frappe-ui'
|
||||||
|
import {
|
||||||
|
computed,
|
||||||
|
inject,
|
||||||
|
onMounted,
|
||||||
|
onBeforeUnmount,
|
||||||
|
reactive,
|
||||||
|
watch,
|
||||||
|
} from 'vue'
|
||||||
|
import { showToast } from '@/utils'
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
|
|
||||||
|
const user = inject('$user')
|
||||||
|
const router = useRouter()
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
assignmentID: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const model = reactive({
|
||||||
|
title: '',
|
||||||
|
type: 'PDF',
|
||||||
|
question: '',
|
||||||
|
})
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
if (
|
||||||
|
props.assignmentID == 'new' &&
|
||||||
|
!user.data?.is_moderator &&
|
||||||
|
!user.data?.is_instructor
|
||||||
|
) {
|
||||||
|
router.push({ name: 'Courses' })
|
||||||
|
}
|
||||||
|
if (props.assignmentID !== 'new') {
|
||||||
|
assignment.reload()
|
||||||
|
}
|
||||||
|
window.addEventListener('keydown', keyboardShortcut)
|
||||||
|
})
|
||||||
|
|
||||||
|
const keyboardShortcut = (e) => {
|
||||||
|
if (e.key === 's' && (e.ctrlKey || e.metaKey)) {
|
||||||
|
saveAssignment()
|
||||||
|
e.preventDefault()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
window.removeEventListener('keydown', keyboardShortcut)
|
||||||
|
})
|
||||||
|
|
||||||
|
const assignment = createDocumentResource({
|
||||||
|
doctype: 'LMS Assignment',
|
||||||
|
name: props.assignmentID,
|
||||||
|
auto: false,
|
||||||
|
})
|
||||||
|
|
||||||
|
const newAssignment = createResource({
|
||||||
|
url: 'frappe.client.insert',
|
||||||
|
makeParams(values) {
|
||||||
|
return {
|
||||||
|
doc: {
|
||||||
|
doctype: 'LMS Assignment',
|
||||||
|
...values,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onSuccess(data) {
|
||||||
|
router.push({ name: 'AssignmentForm', params: { assignmentID: data.name } })
|
||||||
|
},
|
||||||
|
onError(err) {
|
||||||
|
showToast(__('Error'), __(err.messages?.[0] || err), 'x')
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const saveAssignment = () => {
|
||||||
|
if (props.assignmentID == 'new') {
|
||||||
|
newAssignment.submit({
|
||||||
|
...model,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
assignment.setValue.submit(
|
||||||
|
{
|
||||||
|
...model,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
onSuccess(data) {
|
||||||
|
showToast(__('Success'), __('Assignment saved successfully'), 'check')
|
||||||
|
assignment.reload()
|
||||||
|
},
|
||||||
|
onError(err) {
|
||||||
|
showToast(__('Error'), __(err.messages?.[0] || err), 'x')
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
watch(assignment, () => {
|
||||||
|
Object.keys(assignment.doc).forEach((key) => {
|
||||||
|
model[key] = assignment.doc[key]
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
const breadcrumbs = computed(() => [
|
||||||
|
{
|
||||||
|
label: __('Assignments'),
|
||||||
|
route: { name: 'Assignments' },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: assignment.doc ? assignment.doc.title : __('New Assignment'),
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
const assignmentOptions = computed(() => {
|
||||||
|
return [
|
||||||
|
{ label: 'PDF', value: 'PDF' },
|
||||||
|
{ label: 'Image', value: 'Image' },
|
||||||
|
{ label: 'Document', value: 'Document' },
|
||||||
|
{ label: 'Text', value: 'Text' },
|
||||||
|
{ label: 'URL', value: 'URL' },
|
||||||
|
]
|
||||||
|
})
|
||||||
|
</script>
|
||||||
@@ -3,137 +3,20 @@
|
|||||||
class="flex justify-between sticky top-0 z-10 border-b bg-white px-3 py-2.5 sm:px-5"
|
class="flex justify-between sticky top-0 z-10 border-b bg-white px-3 py-2.5 sm:px-5"
|
||||||
>
|
>
|
||||||
<Breadcrumbs :items="breadcrumbs" />
|
<Breadcrumbs :items="breadcrumbs" />
|
||||||
<Button variant="solid" @click="submitAssignment()">
|
|
||||||
{{ __('Save') }}
|
|
||||||
</Button>
|
|
||||||
</header>
|
</header>
|
||||||
<div class="container py-5">
|
<div class="overflow-hidden h-[calc(100vh-3.2rem)]">
|
||||||
<div
|
<Assignment :assignmentID="assignmentID" :submissionName="submissionName" />
|
||||||
v-if="submissionResource.data"
|
|
||||||
class="bg-blue-100 p-2 rounded-md leading-5 text-sm italic"
|
|
||||||
>
|
|
||||||
{{ __("You've successfully submitted the assignment.") }}
|
|
||||||
{{
|
|
||||||
__(
|
|
||||||
"Once the moderator grades your submission, you'll find the details here."
|
|
||||||
)
|
|
||||||
}}
|
|
||||||
{{ __('Feel free to make edits to your submission if needed.') }}
|
|
||||||
</div>
|
|
||||||
<div v-if="assignment.data">
|
|
||||||
<div>
|
|
||||||
<div class="text-xl font-semibold hidden">
|
|
||||||
{{ __('Question') }}
|
|
||||||
</div>
|
|
||||||
<div class="text-sm mt-1 hidden">
|
|
||||||
{{
|
|
||||||
__('Read the question carefully before attempting the assignment.')
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
v-html="assignment.data.question"
|
|
||||||
class="ProseMirror prose prose-table:table-fixed prose-td:p-2 prose-th:p-2 prose-td:border prose-th:border prose-td:border-gray-300 prose-th:border-gray-300 prose-td:relative prose-th:relative prose-th:bg-gray-100 prose-sm max-w-none !whitespace-normal"
|
|
||||||
></div>
|
|
||||||
</div>
|
|
||||||
<div class="">
|
|
||||||
<div class="text-xl font-semibold mt-10">
|
|
||||||
{{ __('Submission') }}
|
|
||||||
</div>
|
|
||||||
<div v-if="showUploader()">
|
|
||||||
<div class="text-sm mt-1 mb-4">
|
|
||||||
{{ __('Add your assignment as {0}').format(assignment.data.type) }}
|
|
||||||
</div>
|
|
||||||
<FileUploader
|
|
||||||
v-if="!submissionFile"
|
|
||||||
:fileTypes="getType()"
|
|
||||||
:validateFile="validateFile"
|
|
||||||
@success="(file) => saveSubmission(file)"
|
|
||||||
>
|
|
||||||
<template
|
|
||||||
#default="{
|
|
||||||
file,
|
|
||||||
uploading,
|
|
||||||
progress,
|
|
||||||
uploaded,
|
|
||||||
message,
|
|
||||||
error,
|
|
||||||
total,
|
|
||||||
success,
|
|
||||||
openFileSelector,
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
<Button @click="openFileSelector" :loading="uploading">
|
|
||||||
{{
|
|
||||||
uploading
|
|
||||||
? __('Uploading {0}%').format(progress)
|
|
||||||
: __('Upload File')
|
|
||||||
}}
|
|
||||||
</Button>
|
|
||||||
</template>
|
|
||||||
</FileUploader>
|
|
||||||
<div v-else>
|
|
||||||
<div class="flex items-center">
|
|
||||||
<div class="border rounded-md p-2 mr-2">
|
|
||||||
<FileText class="h-5 w-5 stroke-1.5 text-gray-700" />
|
|
||||||
</div>
|
|
||||||
<div class="flex flex-col">
|
|
||||||
<span>
|
|
||||||
{{ submissionFile.file_name }}
|
|
||||||
</span>
|
|
||||||
<span class="text-sm text-gray-500 mt-1">
|
|
||||||
{{ getFileSize(submissionFile.file_size) }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<X
|
|
||||||
@click="removeSubmission()"
|
|
||||||
class="bg-gray-200 rounded-md cursor-pointer stroke-1.5 w-5 h-5 p-1 ml-4"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-else-if="assignment.data.type == 'URL'">
|
|
||||||
<div class="text-sm mb-4">
|
|
||||||
{{ __('Enter a URL') }}
|
|
||||||
</div>
|
|
||||||
<FormControl v-model="answer" />
|
|
||||||
</div>
|
|
||||||
<div v-else>
|
|
||||||
<div class="text-sm mb-4">
|
|
||||||
{{ __('Write your answer here') }}
|
|
||||||
</div>
|
|
||||||
<TextEditor
|
|
||||||
:content="answer"
|
|
||||||
@change="(val) => (answer = val)"
|
|
||||||
:editable="true"
|
|
||||||
:fixedMenu="true"
|
|
||||||
editorClass="prose-sm max-w-none border-b border-x bg-gray-100 rounded-b-md py-1 px-2 min-h-[7rem]"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import {
|
import { Breadcrumbs, createResource } from 'frappe-ui'
|
||||||
Breadcrumbs,
|
import { computed, inject, onMounted } from 'vue'
|
||||||
createResource,
|
import Assignment from '@/components/Assignment.vue'
|
||||||
FileUploader,
|
|
||||||
Button,
|
|
||||||
FormControl,
|
|
||||||
TextEditor,
|
|
||||||
} from 'frappe-ui'
|
|
||||||
import { FileText, X } from 'lucide-vue-next'
|
|
||||||
import { computed, inject, onMounted, ref } from 'vue'
|
|
||||||
import { showToast, getFileSize } from '../utils'
|
|
||||||
import { useRouter } from 'vue-router'
|
|
||||||
|
|
||||||
const user = inject('$user')
|
const user = inject('$user')
|
||||||
const submissionFile = ref(null)
|
|
||||||
const answer = ref(null)
|
|
||||||
const router = useRouter()
|
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
assignmentName: {
|
assignmentID: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
@@ -143,186 +26,40 @@ const props = defineProps({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const assignment = createResource({
|
const title = createResource({
|
||||||
url: 'frappe.client.get',
|
url: 'frappe.client.get_value',
|
||||||
params: {
|
params: {
|
||||||
doctype: 'LMS Assignment',
|
doctype: 'LMS Assignment',
|
||||||
name: props.assignmentName,
|
fieldname: 'title',
|
||||||
|
filters: {
|
||||||
|
name: props.assignmentID,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
auto: true,
|
auto: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
const showUploader = () => {
|
|
||||||
return ['PDF', 'Image', 'Document'].includes(assignment.data?.type)
|
|
||||||
}
|
|
||||||
|
|
||||||
const updateSubmission = createResource({
|
|
||||||
url: 'frappe.client.set_value',
|
|
||||||
makeParams(values) {
|
|
||||||
let fieldname = {}
|
|
||||||
if (showUploader()) {
|
|
||||||
fieldname.assignment_attachment = submissionFile.value.file_url
|
|
||||||
} else {
|
|
||||||
fieldname.answer = answer.value
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
doctype: 'LMS Assignment Submission',
|
|
||||||
name: props.submissionName,
|
|
||||||
fieldname: fieldname,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
const imageResource = createResource({
|
|
||||||
url: 'lms.lms.api.get_file_info',
|
|
||||||
makeParams(values) {
|
|
||||||
return {
|
|
||||||
file_url: values.image,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
auto: false,
|
|
||||||
onSuccess(data) {
|
|
||||||
submissionFile.value = data
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
const newSubmission = createResource({
|
|
||||||
url: 'frappe.client.insert',
|
|
||||||
makeParams(values) {
|
|
||||||
let doc = {
|
|
||||||
doctype: 'LMS Assignment Submission',
|
|
||||||
assignment: props.assignmentName,
|
|
||||||
member: user.data?.name,
|
|
||||||
}
|
|
||||||
if (showUploader()) {
|
|
||||||
doc.assignment_attachment = submissionFile.value.file_url
|
|
||||||
} else {
|
|
||||||
doc.answer = answer.value
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
doc: doc,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
const submissionResource = createResource({
|
|
||||||
url: 'frappe.client.get_value',
|
|
||||||
params: {
|
|
||||||
doctype: 'LMS Assignment Submission',
|
|
||||||
fieldname: showUploader() ? 'assignment_attachment' : 'answer',
|
|
||||||
filters: {
|
|
||||||
name: props.submissionName,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
onSuccess(data) {
|
|
||||||
if (data.assignment_attachment)
|
|
||||||
imageResource.reload({ image: data.assignment_attachment })
|
|
||||||
if (data.answer) answer.value = data.answer
|
|
||||||
},
|
|
||||||
})
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (!user.data) {
|
if (!user.data) {
|
||||||
window.location.href = '/login'
|
window.location.href = '/login'
|
||||||
}
|
}
|
||||||
if (props.submissionName != 'new') {
|
|
||||||
submissionResource.reload()
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const submitAssignment = () => {
|
|
||||||
if (props.submissionName != 'new') {
|
|
||||||
updateSubmission.submit(
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
onSuccess(data) {
|
|
||||||
showToast('Success', 'Submission updated successfully.', 'check')
|
|
||||||
},
|
|
||||||
onError(err) {
|
|
||||||
showToast('Error', err.messages?.[0] || err, 'x')
|
|
||||||
},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
addNewSubmission()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const addNewSubmission = () => {
|
|
||||||
newSubmission.submit(
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
onSuccess(data) {
|
|
||||||
showToast('Success', 'Assignment submitted successfully.', 'check')
|
|
||||||
router.push({
|
|
||||||
name: 'AssignmentSubmission',
|
|
||||||
params: {
|
|
||||||
assignmentName: props.assignmentName,
|
|
||||||
submissionName: data.name,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
},
|
|
||||||
onError(err) {
|
|
||||||
showToast('Error', err.messages?.[0] || err, 'x')
|
|
||||||
},
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
const breadcrumbs = computed(() => {
|
const breadcrumbs = computed(() => {
|
||||||
let crumbs = [
|
let crumbs = [
|
||||||
{
|
{
|
||||||
label: 'Assignment',
|
label: 'Submissions',
|
||||||
|
route: { name: 'AssignmentSubmissionList' },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: assignment.data?.title,
|
label: title.data?.title,
|
||||||
route: {
|
route: {
|
||||||
name: 'AssignmentSubmission',
|
name: 'AssignmentSubmission',
|
||||||
params: {
|
params: {
|
||||||
assignmentName: assignment.data?.name,
|
assignmentID: props.assignmentID,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
return crumbs
|
return crumbs
|
||||||
})
|
})
|
||||||
|
|
||||||
const saveSubmission = (file) => {
|
|
||||||
submissionFile.value = file
|
|
||||||
}
|
|
||||||
|
|
||||||
const getType = () => {
|
|
||||||
const type = assignment.data?.type
|
|
||||||
if (type == 'Image') {
|
|
||||||
return ['image/*']
|
|
||||||
} else if (type == 'Document') {
|
|
||||||
return [
|
|
||||||
'.doc',
|
|
||||||
'.docx',
|
|
||||||
'.xml',
|
|
||||||
'application/msword',
|
|
||||||
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
||||||
]
|
|
||||||
} else if (type == 'PDF') {
|
|
||||||
return ['.pdf']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const validateFile = (file) => {
|
|
||||||
let type = assignment.data?.type
|
|
||||||
let extension = file.name.split('.').pop().toLowerCase()
|
|
||||||
if (type == 'Image' && !['jpg', 'jpeg', 'png'].includes(extension)) {
|
|
||||||
return 'Only image file is allowed.'
|
|
||||||
} else if (
|
|
||||||
type == 'Document' &&
|
|
||||||
!['doc', 'docx', 'xml'].includes(extension)
|
|
||||||
) {
|
|
||||||
return 'Only document file is allowed.'
|
|
||||||
} else if (type == 'PDF' && !['pdf'].includes(extension)) {
|
|
||||||
return 'Only PDF file is allowed.'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const removeSubmission = () => {
|
|
||||||
submissionFile.value = null
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
217
frontend/src/pages/AssignmentSubmissionList.vue
Normal file
@@ -0,0 +1,217 @@
|
|||||||
|
<template>
|
||||||
|
<header
|
||||||
|
class="sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5"
|
||||||
|
>
|
||||||
|
<Breadcrumbs :items="breadcrumbs" />
|
||||||
|
</header>
|
||||||
|
<div class="md:w-3/4 md:mx-auto py-5 mx-5">
|
||||||
|
<div class="grid grid-cols-3 gap-5 mb-5">
|
||||||
|
<Link
|
||||||
|
doctype="LMS Assignment"
|
||||||
|
v-model="assignmentID"
|
||||||
|
:placeholder="__('Assignment')"
|
||||||
|
/>
|
||||||
|
<Link doctype="User" v-model="member" :placeholder="__('Member')" />
|
||||||
|
<FormControl
|
||||||
|
v-model="status"
|
||||||
|
type="select"
|
||||||
|
:options="statusOptions"
|
||||||
|
:placeholder="__('Status')"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<ListView
|
||||||
|
v-if="submissions.loading || submissions.data?.length"
|
||||||
|
:columns="submissionColumns"
|
||||||
|
:rows="submissions.data"
|
||||||
|
rowKey="name"
|
||||||
|
>
|
||||||
|
<ListHeader
|
||||||
|
class="mb-2 grid items-center space-x-4 rounded bg-gray-100 p-2"
|
||||||
|
>
|
||||||
|
<ListHeaderItem :item="item" v-for="item in submissionColumns" />
|
||||||
|
</ListHeader>
|
||||||
|
<ListRows>
|
||||||
|
<router-link
|
||||||
|
v-for="row in submissions.data"
|
||||||
|
:to="{
|
||||||
|
name: 'AssignmentSubmission',
|
||||||
|
params: {
|
||||||
|
assignmentID: row.assignment,
|
||||||
|
submissionName: row.name,
|
||||||
|
},
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<ListRow :row="row">
|
||||||
|
<template #default="{ column, item }">
|
||||||
|
<ListRowItem :item="row[column.key]" :align="column.align">
|
||||||
|
<div v-if="column.key == 'status'">
|
||||||
|
<Badge :theme="getStatusTheme(row[column.key])">
|
||||||
|
{{ row[column.key] }}
|
||||||
|
</Badge>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
{{ row[column.key] }}
|
||||||
|
</div>
|
||||||
|
</ListRowItem>
|
||||||
|
</template>
|
||||||
|
</ListRow>
|
||||||
|
</router-link>
|
||||||
|
</ListRows>
|
||||||
|
</ListView>
|
||||||
|
<div
|
||||||
|
v-else
|
||||||
|
class="text-center p-5 text-gray-600 mt-52 w-3/4 md:w-1/2 mx-auto space-y-2"
|
||||||
|
>
|
||||||
|
<Pencil class="size-8 mx-auto stroke-1 text-gray-500" />
|
||||||
|
<div class="text-xl font-medium">
|
||||||
|
{{ __('No submissions') }}
|
||||||
|
</div>
|
||||||
|
<div class="leading-5">
|
||||||
|
{{ __('There are no submissions for this assignment.') }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
Badge,
|
||||||
|
Breadcrumbs,
|
||||||
|
createListResource,
|
||||||
|
FormControl,
|
||||||
|
ListView,
|
||||||
|
ListHeader,
|
||||||
|
ListHeaderItem,
|
||||||
|
ListRows,
|
||||||
|
ListRow,
|
||||||
|
ListRowItem,
|
||||||
|
} from 'frappe-ui'
|
||||||
|
import { computed, inject, onMounted, ref, watch } from 'vue'
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
|
import { Pencil } from 'lucide-vue-next'
|
||||||
|
import Link from '@/components/Controls/Link.vue'
|
||||||
|
|
||||||
|
const user = inject('$user')
|
||||||
|
const dayjs = inject('$dayjs')
|
||||||
|
const router = useRouter()
|
||||||
|
const assignmentID = ref('')
|
||||||
|
const member = ref('')
|
||||||
|
const status = ref('')
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
if (!user.data?.is_instructor && !user.data?.is_moderator) {
|
||||||
|
router.push({ name: 'Courses' })
|
||||||
|
}
|
||||||
|
assignmentID.value = router.currentRoute.value.query.assignmentID
|
||||||
|
member.value = router.currentRoute.value.query.member
|
||||||
|
status.value = router.currentRoute.value.query.status
|
||||||
|
reloadSubmissions()
|
||||||
|
})
|
||||||
|
|
||||||
|
const getAssignmentFilters = () => {
|
||||||
|
let filters = {}
|
||||||
|
if (assignmentID.value) {
|
||||||
|
filters.assignment = assignmentID.value
|
||||||
|
}
|
||||||
|
if (member.value) {
|
||||||
|
filters.member = member.value
|
||||||
|
}
|
||||||
|
if (status.value) {
|
||||||
|
filters.status = status.value
|
||||||
|
}
|
||||||
|
return filters
|
||||||
|
}
|
||||||
|
|
||||||
|
const submissions = createListResource({
|
||||||
|
doctype: 'LMS Assignment Submission',
|
||||||
|
fields: [
|
||||||
|
'name',
|
||||||
|
'assignment',
|
||||||
|
'assignment_title',
|
||||||
|
'member_name',
|
||||||
|
'creation',
|
||||||
|
'status',
|
||||||
|
],
|
||||||
|
orderBy: 'creation desc',
|
||||||
|
transform(data) {
|
||||||
|
return data.map((row) => {
|
||||||
|
return {
|
||||||
|
...row,
|
||||||
|
creation: dayjs(row.creation).fromNow(),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
// watch changes in assignmentID, member, and status and if changes in any then reload submissions. Also update the url query params for the same
|
||||||
|
watch([assignmentID, member, status], () => {
|
||||||
|
router.push({
|
||||||
|
query: {
|
||||||
|
assignmentID: assignmentID.value,
|
||||||
|
member: member.value,
|
||||||
|
status: status.value,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
reloadSubmissions()
|
||||||
|
})
|
||||||
|
|
||||||
|
const reloadSubmissions = () => {
|
||||||
|
submissions.update({
|
||||||
|
filters: getAssignmentFilters(),
|
||||||
|
})
|
||||||
|
submissions.reload()
|
||||||
|
}
|
||||||
|
|
||||||
|
const submissionColumns = computed(() => {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
label: 'Member',
|
||||||
|
key: 'member_name',
|
||||||
|
width: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Assignment',
|
||||||
|
key: 'assignment_title',
|
||||||
|
width: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Submitted',
|
||||||
|
key: 'creation',
|
||||||
|
width: 1,
|
||||||
|
align: 'left',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Status',
|
||||||
|
key: 'status',
|
||||||
|
width: 1,
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
const statusOptions = computed(() => {
|
||||||
|
return [
|
||||||
|
{ label: '', value: '' },
|
||||||
|
{ label: 'Pass', value: 'Pass' },
|
||||||
|
{ label: 'Fail', value: 'Fail' },
|
||||||
|
{ label: 'Not Graded', value: 'Not Graded' },
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
const getStatusTheme = (status) => {
|
||||||
|
if (status === 'Pass') {
|
||||||
|
return 'green'
|
||||||
|
} else if (status === 'Not Graded') {
|
||||||
|
return 'blue'
|
||||||
|
} else {
|
||||||
|
return 'red'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const breadcrumbs = computed(() => {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
label: 'Assignment Submissions',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
})
|
||||||
|
</script>
|
||||||
187
frontend/src/pages/Assignments.vue
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
<template>
|
||||||
|
<header
|
||||||
|
class="sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5"
|
||||||
|
>
|
||||||
|
<Breadcrumbs :items="breadcrumbs" />
|
||||||
|
<router-link
|
||||||
|
:to="{
|
||||||
|
name: 'AssignmentForm',
|
||||||
|
params: {
|
||||||
|
assignmentID: 'new',
|
||||||
|
},
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<Button variant="solid">
|
||||||
|
<template #prefix>
|
||||||
|
<Plus class="w-4 h-4" />
|
||||||
|
</template>
|
||||||
|
{{ __('New') }}
|
||||||
|
</Button>
|
||||||
|
</router-link>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="md:w-3/4 md:mx-auto py-5 mx-5">
|
||||||
|
<div class="grid grid-cols-3 gap-5 mb-5">
|
||||||
|
<FormControl v-model="titleFilter" :placeholder="__('Search by title')" />
|
||||||
|
<FormControl
|
||||||
|
v-model="typeFilter"
|
||||||
|
type="select"
|
||||||
|
:options="assignmentTypes"
|
||||||
|
:placeholder="__('Type')"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<ListView
|
||||||
|
v-if="assignments.data?.length"
|
||||||
|
:columns="assignmentColumns"
|
||||||
|
:rows="assignments.data"
|
||||||
|
row-key="name"
|
||||||
|
:options="{
|
||||||
|
showTooltip: false,
|
||||||
|
selectable: false,
|
||||||
|
getRowRoute: (row) => ({
|
||||||
|
name: 'AssignmentForm',
|
||||||
|
params: {
|
||||||
|
assignmentID: row.name,
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
</ListView>
|
||||||
|
<div
|
||||||
|
v-else
|
||||||
|
class="text-center p-5 text-gray-600 mt-52 w-3/4 md:w-1/2 mx-auto space-y-2"
|
||||||
|
>
|
||||||
|
<Pencil class="size-10 mx-auto stroke-1 text-gray-500" />
|
||||||
|
<div class="text-xl font-medium">
|
||||||
|
{{ __('No assignments found') }}
|
||||||
|
</div>
|
||||||
|
<div class="leading-5">
|
||||||
|
{{
|
||||||
|
__(
|
||||||
|
'You have not created any assignments yet. To create a new assignment, click on the "New" button above.'
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="assignments.data && assignments.hasNextPage"
|
||||||
|
class="flex justify-center my-5"
|
||||||
|
>
|
||||||
|
<Button @click="assignments.next()">
|
||||||
|
{{ __('Load More') }}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import {
|
||||||
|
Breadcrumbs,
|
||||||
|
Button,
|
||||||
|
createListResource,
|
||||||
|
FormControl,
|
||||||
|
ListView,
|
||||||
|
} from 'frappe-ui'
|
||||||
|
import { computed, inject, onMounted, ref, watch } from 'vue'
|
||||||
|
import { Plus, Pencil } from 'lucide-vue-next'
|
||||||
|
import { useRouter } from 'vue-router'
|
||||||
|
|
||||||
|
const user = inject('$user')
|
||||||
|
const dayjs = inject('$dayjs')
|
||||||
|
const titleFilter = ref('')
|
||||||
|
const typeFilter = ref('')
|
||||||
|
const router = useRouter()
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
if (!user.data?.is_moderator && !user.data?.is_instructor) {
|
||||||
|
router.push({ name: 'Courses' })
|
||||||
|
}
|
||||||
|
|
||||||
|
titleFilter.value = router.currentRoute.value.query.title
|
||||||
|
typeFilter.value = router.currentRoute.value.query.type
|
||||||
|
})
|
||||||
|
|
||||||
|
watch([titleFilter, typeFilter], () => {
|
||||||
|
router.push({
|
||||||
|
query: {
|
||||||
|
title: titleFilter.value,
|
||||||
|
type: typeFilter.value,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
reloadAssignments()
|
||||||
|
})
|
||||||
|
|
||||||
|
const reloadAssignments = () => {
|
||||||
|
assignments.update({
|
||||||
|
filters: assignmentFilter.value,
|
||||||
|
})
|
||||||
|
assignments.reload()
|
||||||
|
}
|
||||||
|
|
||||||
|
const assignmentFilter = computed(() => {
|
||||||
|
let filters = {}
|
||||||
|
if (titleFilter.value) {
|
||||||
|
filters.title = ['like', `%${titleFilter.value}%`]
|
||||||
|
}
|
||||||
|
if (typeFilter.value) {
|
||||||
|
filters.type = typeFilter.value
|
||||||
|
}
|
||||||
|
if (!user.data?.is_moderator) {
|
||||||
|
filters.owner = user.data?.email
|
||||||
|
}
|
||||||
|
return filters
|
||||||
|
})
|
||||||
|
|
||||||
|
const assignments = createListResource({
|
||||||
|
doctype: 'LMS Assignment',
|
||||||
|
fields: ['name', 'title', 'type', 'creation'],
|
||||||
|
orderBy: 'modified desc',
|
||||||
|
cache: ['assignments'],
|
||||||
|
transform(data) {
|
||||||
|
return data.map((row) => {
|
||||||
|
return {
|
||||||
|
...row,
|
||||||
|
creation: dayjs(row.creation).fromNow(),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const assignmentColumns = computed(() => {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
label: __('Title'),
|
||||||
|
key: 'title',
|
||||||
|
width: 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: __('Type'),
|
||||||
|
key: 'type',
|
||||||
|
width: 1,
|
||||||
|
align: 'left',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: __('Created'),
|
||||||
|
key: 'creation',
|
||||||
|
width: 1,
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
const assignmentTypes = computed(() => {
|
||||||
|
let types = ['', 'Document', 'Image', 'PDF', 'URL', 'Text']
|
||||||
|
return types.map((type) => {
|
||||||
|
return {
|
||||||
|
label: __(type),
|
||||||
|
value: type,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
const breadcrumbs = computed(() => [
|
||||||
|
{
|
||||||
|
label: 'Assignments',
|
||||||
|
route: { name: 'Assignments' },
|
||||||
|
},
|
||||||
|
])
|
||||||
|
</script>
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div v-if="batch.data" class="grid grid-cols-[70%,30%] h-screen">
|
<div v-if="batch.data" class="grid grid-cols-[70%,30%] h-screen">
|
||||||
<div class="border-r-2">
|
<div class="border-r">
|
||||||
<Tabs
|
<Tabs
|
||||||
v-model="tabIndex"
|
v-model="tabIndex"
|
||||||
:tabs="tabs"
|
:tabs="tabs"
|
||||||
@@ -59,15 +59,15 @@
|
|||||||
<div v-if="tab.label == 'Courses'">
|
<div v-if="tab.label == 'Courses'">
|
||||||
<BatchCourses :batch="batch.data.name" />
|
<BatchCourses :batch="batch.data.name" />
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="tab.label == 'Dashboard'">
|
<div v-else-if="tab.label == 'Dashboard' && isStudent">
|
||||||
<BatchDashboard :batch="batch" :isStudent="isStudent" />
|
<BatchDashboard :batch="batch" :isStudent="isStudent" />
|
||||||
</div>
|
</div>
|
||||||
|
<div v-else-if="tab.label == 'Dashboard'">
|
||||||
|
<BatchStudents :batch="batch.data" />
|
||||||
|
</div>
|
||||||
<div v-else-if="tab.label == 'Live Class'">
|
<div v-else-if="tab.label == 'Live Class'">
|
||||||
<LiveClass :batch="batch.data.name" />
|
<LiveClass :batch="batch.data.name" />
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="tab.label == 'Students'">
|
|
||||||
<BatchStudents :batch="batch.data.name" />
|
|
||||||
</div>
|
|
||||||
<div v-else-if="tab.label == 'Assessments'">
|
<div v-else-if="tab.label == 'Assessments'">
|
||||||
<Assessments :batch="batch.data.name" />
|
<Assessments :batch="batch.data.name" />
|
||||||
</div>
|
</div>
|
||||||
@@ -89,12 +89,12 @@
|
|||||||
</Tabs>
|
</Tabs>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-5">
|
<div class="p-5">
|
||||||
<div class="text-2xl font-semibold mb-2">
|
<div class="text-xl font-semibold mb-2">
|
||||||
{{ batch.data.title }}
|
{{ batch.data.title }}
|
||||||
</div>
|
</div>
|
||||||
<div v-html="batch.data.description" class="leading-5 mb-2"></div>
|
<div v-html="batch.data.description" class="leading-5 mb-2"></div>
|
||||||
|
|
||||||
<div class="flex avatar-group overlap mb-5">
|
<div class="flex items-center avatar-group overlap mb-5">
|
||||||
<div
|
<div
|
||||||
class="h-6 mr-1"
|
class="h-6 mr-1"
|
||||||
:class="{
|
:class="{
|
||||||
@@ -195,6 +195,7 @@ import {
|
|||||||
SendIcon,
|
SendIcon,
|
||||||
MessageCircle,
|
MessageCircle,
|
||||||
Globe,
|
Globe,
|
||||||
|
ShieldCheck,
|
||||||
} from 'lucide-vue-next'
|
} from 'lucide-vue-next'
|
||||||
import { formatTime, updateDocumentTitle } from '@/utils'
|
import { formatTime, updateDocumentTitle } from '@/utils'
|
||||||
import BatchDashboard from '@/components/BatchDashboard.vue'
|
import BatchDashboard from '@/components/BatchDashboard.vue'
|
||||||
@@ -229,7 +230,7 @@ const batch = createResource({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const breadcrumbs = computed(() => {
|
const breadcrumbs = computed(() => {
|
||||||
let crumbs = [{ label: 'All Batches', route: { name: 'Batches' } }]
|
let crumbs = [{ label: 'Batches', route: { name: 'Batches' } }]
|
||||||
if (!isStudent.value) {
|
if (!isStudent.value) {
|
||||||
crumbs.push({
|
crumbs.push({
|
||||||
label: 'Details',
|
label: 'Details',
|
||||||
@@ -259,34 +260,33 @@ const isStudent = computed(() => {
|
|||||||
const tabIndex = ref(0)
|
const tabIndex = ref(0)
|
||||||
const tabs = computed(() => {
|
const tabs = computed(() => {
|
||||||
let batchTabs = []
|
let batchTabs = []
|
||||||
if (isStudent.value) {
|
|
||||||
batchTabs.push({
|
batchTabs.push({
|
||||||
label: 'Dashboard',
|
label: 'Dashboard',
|
||||||
icon: LayoutDashboard,
|
icon: LayoutDashboard,
|
||||||
})
|
})
|
||||||
}
|
|
||||||
if (user.data?.is_moderator) {
|
|
||||||
batchTabs.push({
|
batchTabs.push({
|
||||||
label: 'Students',
|
label: 'Courses',
|
||||||
icon: Contact2,
|
icon: BookOpen,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
batchTabs.push({
|
||||||
|
label: 'Live Class',
|
||||||
|
icon: Laptop,
|
||||||
|
})
|
||||||
|
|
||||||
|
if (user.data?.is_moderator) {
|
||||||
batchTabs.push({
|
batchTabs.push({
|
||||||
label: 'Assessments',
|
label: 'Assessments',
|
||||||
icon: BookOpenCheck,
|
icon: BookOpenCheck,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
batchTabs.push({
|
|
||||||
label: 'Live Class',
|
|
||||||
icon: Laptop,
|
|
||||||
})
|
|
||||||
batchTabs.push({
|
|
||||||
label: 'Courses',
|
|
||||||
icon: BookOpen,
|
|
||||||
})
|
|
||||||
batchTabs.push({
|
batchTabs.push({
|
||||||
label: 'Announcements',
|
label: 'Announcements',
|
||||||
icon: Mail,
|
icon: Mail,
|
||||||
})
|
})
|
||||||
|
|
||||||
batchTabs.push({
|
batchTabs.push({
|
||||||
label: 'Discussions',
|
label: 'Discussions',
|
||||||
icon: MessageCircle,
|
icon: MessageCircle,
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ const courses = createResource({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const breadcrumbs = computed(() => {
|
const breadcrumbs = computed(() => {
|
||||||
let items = [{ label: 'All Batches', route: { name: 'Batches' } }]
|
let items = [{ label: 'Batches', route: { name: 'Batches' } }]
|
||||||
items.push({
|
items.push({
|
||||||
label: batch?.data?.title,
|
label: batch?.data?.title,
|
||||||
route: { name: 'BatchDetail', params: { batchName: batch?.data?.name } },
|
route: { name: 'BatchDetail', params: { batchName: batch?.data?.name } },
|
||||||
|
|||||||
@@ -252,7 +252,7 @@ import {
|
|||||||
} from 'frappe-ui'
|
} from 'frappe-ui'
|
||||||
import Link from '@/components/Controls/Link.vue'
|
import Link from '@/components/Controls/Link.vue'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import { showToast } from '../utils'
|
import { showToast } from '@/utils'
|
||||||
import { Image } from 'lucide-vue-next'
|
import { Image } from 'lucide-vue-next'
|
||||||
import { capture } from '@/telemetry'
|
import { capture } from '@/telemetry'
|
||||||
import MultiSelect from '@/components/Controls/MultiSelect.vue'
|
import MultiSelect from '@/components/Controls/MultiSelect.vue'
|
||||||
@@ -345,6 +345,10 @@ const batchDetail = createResource({
|
|||||||
data.instructors.forEach((instructor) => {
|
data.instructors.forEach((instructor) => {
|
||||||
instructors.value.push(instructor.instructor)
|
instructors.value.push(instructor.instructor)
|
||||||
})
|
})
|
||||||
|
} else if (['start_time', 'end_time'].includes(key)) {
|
||||||
|
let [hours, minutes, seconds] = data[key].split(':')
|
||||||
|
hours = hours.length == 1 ? '0' + hours : hours
|
||||||
|
batch[key] = `${hours}:${minutes}`
|
||||||
} else if (Object.hasOwn(batch, key)) batch[key] = data[key]
|
} else if (Object.hasOwn(batch, key)) batch[key] = data[key]
|
||||||
})
|
})
|
||||||
let checkboxes = ['published', 'paid_batch', 'allow_self_enrollment']
|
let checkboxes = ['published', 'paid_batch', 'allow_self_enrollment']
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<Tooltip
|
<Tooltip
|
||||||
v-if="course.data.rating"
|
v-if="parseInt(course.data.rating) > 0"
|
||||||
:text="__('Average Rating')"
|
:text="__('Average Rating')"
|
||||||
class="flex items-center"
|
class="flex items-center"
|
||||||
>
|
>
|
||||||
@@ -25,7 +25,9 @@
|
|||||||
{{ course.data.rating }}
|
{{ course.data.rating }}
|
||||||
</span>
|
</span>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<span v-if="course.data.rating" class="mx-3">·</span>
|
<span v-if="parseInt(course.data.rating) > 0" class="mx-3"
|
||||||
|
>·</span
|
||||||
|
>
|
||||||
<Tooltip
|
<Tooltip
|
||||||
v-if="course.data.enrollment_count"
|
v-if="course.data.enrollment_count"
|
||||||
:text="__('Enrolled Students')"
|
:text="__('Enrolled Students')"
|
||||||
@@ -117,7 +119,7 @@ const course = createResource({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const breadcrumbs = computed(() => {
|
const breadcrumbs = computed(() => {
|
||||||
let items = [{ label: 'All Courses', route: { name: 'Courses' } }]
|
let items = [{ label: 'Courses', route: { name: 'Courses' } }]
|
||||||
items.push({
|
items.push({
|
||||||
label: course?.data?.title,
|
label: course?.data?.title,
|
||||||
route: { name: 'CourseDetail', params: { courseName: course?.data?.name } },
|
route: { name: 'CourseDetail', params: { courseName: course?.data?.name } },
|
||||||
|
|||||||
@@ -133,8 +133,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<FormControl
|
<FormControl
|
||||||
v-model="newTag"
|
v-model="newTag"
|
||||||
:placeholder="__('Keywords for the course')"
|
:placeholder="__('Add a keyword and then press enter')"
|
||||||
class="w-52"
|
class="w-72"
|
||||||
@keyup.enter="updateTags()"
|
@keyup.enter="updateTags()"
|
||||||
id="tags"
|
id="tags"
|
||||||
/>
|
/>
|
||||||
@@ -288,6 +288,7 @@ const course = reactive({
|
|||||||
video_link: '',
|
video_link: '',
|
||||||
course_image: null,
|
course_image: null,
|
||||||
tags: '',
|
tags: '',
|
||||||
|
category: '',
|
||||||
published: false,
|
published: false,
|
||||||
published_on: '',
|
published_on: '',
|
||||||
featured: false,
|
featured: false,
|
||||||
|
|||||||
@@ -42,8 +42,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div v-if="jobsList?.length">
|
<div v-if="jobsList?.length">
|
||||||
<div class="divide-y lg:w-3/4 mx-auto p-5">
|
<div class="lg:w-3/4 mx-auto p-5">
|
||||||
<div v-for="job in jobsList">
|
<div class="text-xl font-semibold mb-5">
|
||||||
|
{{ __('Find the perfect job for you') }}
|
||||||
|
</div>
|
||||||
|
<div v-for="job in jobsList" class="divide-y">
|
||||||
<router-link
|
<router-link
|
||||||
:to="{
|
:to="{
|
||||||
name: 'JobDetail',
|
name: 'JobDetail',
|
||||||
|
|||||||
@@ -305,7 +305,7 @@ const progress = createResource({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const breadcrumbs = computed(() => {
|
const breadcrumbs = computed(() => {
|
||||||
let items = [{ label: 'All Courses', route: { name: 'Courses' } }]
|
let items = [{ label: 'Courses', route: { name: 'Courses' } }]
|
||||||
items.push({
|
items.push({
|
||||||
label: lesson?.data?.course_title,
|
label: lesson?.data?.course_title,
|
||||||
route: { name: 'CourseDetail', params: { courseName: props.courseName } },
|
route: { name: 'CourseDetail', params: { courseName: props.courseName } },
|
||||||
|
|||||||
@@ -132,6 +132,7 @@ const renderEditor = (holder) => {
|
|||||||
holder: holder,
|
holder: holder,
|
||||||
tools: getEditorTools(true),
|
tools: getEditorTools(true),
|
||||||
autofocus: true,
|
autofocus: true,
|
||||||
|
defaultBlock: 'markdown',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -256,11 +256,7 @@ onMounted(() => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const keyboardShortcut = (e) => {
|
const keyboardShortcut = (e) => {
|
||||||
if (
|
if (e.key === 's' && (e.ctrlKey || e.metaKey)) {
|
||||||
e.key === 's' &&
|
|
||||||
(e.ctrlKey || e.metaKey) &&
|
|
||||||
!e.target.classList.contains('ProseMirror')
|
|
||||||
) {
|
|
||||||
submitQuiz()
|
submitQuiz()
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,9 @@
|
|||||||
<Breadcrumbs :items="breadcrumbs" />
|
<Breadcrumbs :items="breadcrumbs" />
|
||||||
</header>
|
</header>
|
||||||
<div v-if="submissions.data?.length" class="md:w-3/4 md:mx-auto py-5 mx-5">
|
<div v-if="submissions.data?.length" class="md:w-3/4 md:mx-auto py-5 mx-5">
|
||||||
|
<div class="text-xl font-semibold mb-5">
|
||||||
|
{{ submissions.data[0].quiz_title }}
|
||||||
|
</div>
|
||||||
<ListView
|
<ListView
|
||||||
:columns="quizColumns"
|
:columns="quizColumns"
|
||||||
:rows="submissions.data"
|
:rows="submissions.data"
|
||||||
@@ -31,12 +34,18 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
</ListRows>
|
</ListRows>
|
||||||
</ListView>
|
</ListView>
|
||||||
|
<div class="flex justify-center my-5">
|
||||||
|
<Button v-if="submissions.hasNextPage" @click="submissions.next()">
|
||||||
|
{{ __('Load More') }}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import {
|
import {
|
||||||
createListResource,
|
createListResource,
|
||||||
Breadcrumbs,
|
Breadcrumbs,
|
||||||
|
Button,
|
||||||
ListView,
|
ListView,
|
||||||
ListRow,
|
ListRow,
|
||||||
ListRows,
|
ListRows,
|
||||||
@@ -76,12 +85,7 @@ const quizColumns = computed(() => {
|
|||||||
{
|
{
|
||||||
label: __('Member'),
|
label: __('Member'),
|
||||||
key: 'member_name',
|
key: 'member_name',
|
||||||
width: 2,
|
width: 1,
|
||||||
},
|
|
||||||
{
|
|
||||||
label: __('Quiz'),
|
|
||||||
key: 'quiz_title',
|
|
||||||
width: 2,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: __('Score'),
|
label: __('Score'),
|
||||||
|
|||||||
@@ -46,6 +46,11 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
</ListRows>
|
</ListRows>
|
||||||
</ListView>
|
</ListView>
|
||||||
|
<div class="flex justify-center my-5">
|
||||||
|
<Button v-if="quizzes.hasNextPage" @click="quizzes.next()">
|
||||||
|
{{ __('Load More') }}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else
|
v-else
|
||||||
@@ -67,13 +72,13 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import {
|
import {
|
||||||
Breadcrumbs,
|
Breadcrumbs,
|
||||||
|
Button,
|
||||||
createListResource,
|
createListResource,
|
||||||
ListView,
|
ListView,
|
||||||
ListRows,
|
ListRows,
|
||||||
ListRow,
|
ListRow,
|
||||||
ListHeader,
|
ListHeader,
|
||||||
ListHeaderItem,
|
ListHeaderItem,
|
||||||
Button,
|
|
||||||
} from 'frappe-ui'
|
} from 'frappe-ui'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import { computed, inject, onMounted } from 'vue'
|
import { computed, inject, onMounted } from 'vue'
|
||||||
@@ -103,9 +108,6 @@ const quizzes = createListResource({
|
|||||||
auto: true,
|
auto: true,
|
||||||
cache: ['quizzes', user.data?.name],
|
cache: ['quizzes', user.data?.name],
|
||||||
orderBy: 'modified desc',
|
orderBy: 'modified desc',
|
||||||
onSuccess(data) {
|
|
||||||
data.forEach((row) => {})
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const quizColumns = computed(() => {
|
const quizColumns = computed(() => {
|
||||||
|
|||||||
@@ -131,12 +131,6 @@ const routes = [
|
|||||||
component: () => import('@/pages/JobCreation.vue'),
|
component: () => import('@/pages/JobCreation.vue'),
|
||||||
props: true,
|
props: true,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: '/assignment-submission/:assignmentName/:submissionName',
|
|
||||||
name: 'AssignmentSubmission',
|
|
||||||
component: () => import('@/pages/AssignmentSubmission.vue'),
|
|
||||||
props: true,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: '/certified-participants',
|
path: '/certified-participants',
|
||||||
name: 'CertifiedParticipants',
|
name: 'CertifiedParticipants',
|
||||||
@@ -193,6 +187,28 @@ const routes = [
|
|||||||
name: 'Programs',
|
name: 'Programs',
|
||||||
component: () => import('@/pages/Programs.vue'),
|
component: () => import('@/pages/Programs.vue'),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/assignments',
|
||||||
|
name: 'Assignments',
|
||||||
|
component: () => import('@/pages/Assignments.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/assignments/:assignmentID',
|
||||||
|
name: 'AssignmentForm',
|
||||||
|
component: () => import('@/pages/AssignmentForm.vue'),
|
||||||
|
props: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/assignment-submission/:assignmentID/:submissionName',
|
||||||
|
name: 'AssignmentSubmission',
|
||||||
|
component: () => import('@/pages/AssignmentSubmission.vue'),
|
||||||
|
props: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/assignment-submissions',
|
||||||
|
name: 'AssignmentSubmissionList',
|
||||||
|
component: () => import('@/pages/AssignmentSubmissionList.vue'),
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
let router = createRouter({
|
let router = createRouter({
|
||||||
|
|||||||
83
frontend/src/utils/assignment.js
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
import { Pencil } from 'lucide-vue-next'
|
||||||
|
import { createApp, h } from 'vue'
|
||||||
|
import AssessmentPlugin from '@/components/AssessmentPlugin.vue'
|
||||||
|
import AssignmentBlock from '@/components/AssignmentBlock.vue'
|
||||||
|
import translationPlugin from '../translation'
|
||||||
|
import { usersStore } from '@/stores/user'
|
||||||
|
import router from '../router'
|
||||||
|
|
||||||
|
export class Assignment {
|
||||||
|
constructor({ data, api, readOnly }) {
|
||||||
|
this.data = data
|
||||||
|
this.readOnly = readOnly
|
||||||
|
}
|
||||||
|
|
||||||
|
static get toolbox() {
|
||||||
|
const app = createApp({
|
||||||
|
render: () =>
|
||||||
|
h(Pencil, { size: 18, strokeWidth: 1.5, color: 'black' }),
|
||||||
|
})
|
||||||
|
|
||||||
|
const div = document.createElement('div')
|
||||||
|
app.mount(div)
|
||||||
|
|
||||||
|
return {
|
||||||
|
title: __('Assignment'),
|
||||||
|
icon: div.innerHTML,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static get isReadOnlySupported() {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
this.wrapper = document.createElement('div')
|
||||||
|
if (Object.keys(this.data).length) {
|
||||||
|
this.renderAssignment(this.data.assignment)
|
||||||
|
} else {
|
||||||
|
this.renderAssignmentModal()
|
||||||
|
}
|
||||||
|
return this.wrapper
|
||||||
|
}
|
||||||
|
|
||||||
|
renderAssignment(assignment) {
|
||||||
|
if (this.readOnly) {
|
||||||
|
const app = createApp(AssignmentBlock, {
|
||||||
|
assignmentID: assignment,
|
||||||
|
})
|
||||||
|
app.use(translationPlugin)
|
||||||
|
app.use(router)
|
||||||
|
const { userResource } = usersStore()
|
||||||
|
app.provide('$user', userResource)
|
||||||
|
app.mount(this.wrapper)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.wrapper.innerHTML = `<div class='border rounded-md p-10 text-center bg-gray-50 mb-2'>
|
||||||
|
<span class="font-medium">
|
||||||
|
Assignment: ${assignment}
|
||||||
|
</span>
|
||||||
|
</div>`
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
renderAssignmentModal() {
|
||||||
|
if (this.readOnly) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const app = createApp(AssessmentPlugin, {
|
||||||
|
onAddition: (assignment) => {
|
||||||
|
this.data.assignment = assignment
|
||||||
|
this.renderAssignment(assignment)
|
||||||
|
},
|
||||||
|
})
|
||||||
|
app.use(translationPlugin)
|
||||||
|
app.mount(this.wrapper)
|
||||||
|
}
|
||||||
|
|
||||||
|
save(blockContent) {
|
||||||
|
return {
|
||||||
|
assignment: this.data.assignment,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
import { toast } from 'frappe-ui'
|
import { toast } from 'frappe-ui'
|
||||||
import { useTimeAgo } from '@vueuse/core'
|
import { useTimeAgo } from '@vueuse/core'
|
||||||
import { Quiz } from '@/utils/quiz'
|
import { Quiz } from '@/utils/quiz'
|
||||||
|
import { Assignment } from '@/utils/assignment'
|
||||||
import { Upload } from '@/utils/upload'
|
import { Upload } from '@/utils/upload'
|
||||||
|
import { Markdown } from '@/utils/markdownParser'
|
||||||
import Header from '@editorjs/header'
|
import Header from '@editorjs/header'
|
||||||
import Paragraph from '@editorjs/paragraph'
|
import Paragraph from '@editorjs/paragraph'
|
||||||
import { CodeBox } from '@/utils/code'
|
import { CodeBox } from '@/utils/code'
|
||||||
@@ -147,9 +149,16 @@ export function htmlToText(html) {
|
|||||||
|
|
||||||
export function getEditorTools() {
|
export function getEditorTools() {
|
||||||
return {
|
return {
|
||||||
header: Header,
|
header: {
|
||||||
|
class: Header,
|
||||||
|
config: {
|
||||||
|
placeholder: 'Header',
|
||||||
|
},
|
||||||
|
},
|
||||||
quiz: Quiz,
|
quiz: Quiz,
|
||||||
|
assignment: Assignment,
|
||||||
upload: Upload,
|
upload: Upload,
|
||||||
|
markdown: Markdown,
|
||||||
image: SimpleImage,
|
image: SimpleImage,
|
||||||
table: Table,
|
table: Table,
|
||||||
paragraph: {
|
paragraph: {
|
||||||
|
|||||||
156
frontend/src/utils/markdownParser.js
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
export class Markdown {
|
||||||
|
constructor({ data, api, readOnly, config }) {
|
||||||
|
this.api = api
|
||||||
|
this.data = data || {}
|
||||||
|
this.config = config || {}
|
||||||
|
this.text = data.text || ''
|
||||||
|
this.readOnly = readOnly
|
||||||
|
}
|
||||||
|
|
||||||
|
static get isReadOnlySupported() {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
static get conversionConfig() {
|
||||||
|
return {
|
||||||
|
export: 'text',
|
||||||
|
import: 'text',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onPaste(event) {
|
||||||
|
const data = {
|
||||||
|
text: event.detail.data.innerHTML,
|
||||||
|
}
|
||||||
|
|
||||||
|
this.data = data
|
||||||
|
|
||||||
|
window.requestAnimationFrame(() => {
|
||||||
|
if (!this.wrapper) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.wrapper.innerHTML = this.data.text || ''
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
static get pasteConfig() {
|
||||||
|
return {
|
||||||
|
tags: ['P'],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
this.wrapper = document.createElement('div')
|
||||||
|
this.wrapper.classList.add('cdx-block')
|
||||||
|
this.wrapper.classList.add('ce-paragraph')
|
||||||
|
this.wrapper.innerHTML = this.text
|
||||||
|
|
||||||
|
if (!this.readOnly) {
|
||||||
|
this.wrapper.contentEditable = true
|
||||||
|
this.wrapper.innerHTML = this.text
|
||||||
|
|
||||||
|
this.wrapper.addEventListener('keydown', (event) => {
|
||||||
|
const value = event.target.textContent
|
||||||
|
if (event.keyCode === 32 && value.startsWith('#')) {
|
||||||
|
this.convertToHeader(event, value)
|
||||||
|
} else if (event.keyCode === 13) {
|
||||||
|
this.parseContent(event)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.wrapper
|
||||||
|
}
|
||||||
|
|
||||||
|
convertToHeader(event, value) {
|
||||||
|
event.preventDefault()
|
||||||
|
if (['#', '##', '###', '####', '#####', '######'].includes(value)) {
|
||||||
|
let level = value.length
|
||||||
|
event.target.textContent = ''
|
||||||
|
this.convertBlock('header', {
|
||||||
|
level: level,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
parseContent(event) {
|
||||||
|
event.preventDefault()
|
||||||
|
const previousLine = this.wrapper.textContent
|
||||||
|
if (previousLine && this.hasImage(previousLine)) {
|
||||||
|
this.wrapper.textContent = ''
|
||||||
|
this.convertBlock('image')
|
||||||
|
} else if (previousLine && this.hasLink(previousLine)) {
|
||||||
|
const { text, url } = this.extractLink(previousLine)
|
||||||
|
const anchorTag = `<a href="${url}" target="_blank">${text}</a>`
|
||||||
|
this.convertBlock('paragraph', {
|
||||||
|
text: previousLine.replace(/\[.+?\]\(.+?\)/, anchorTag),
|
||||||
|
})
|
||||||
|
} else if (previousLine && previousLine.startsWith('- ')) {
|
||||||
|
this.convertBlock('list', {
|
||||||
|
style: 'unordered',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
content: previousLine.replace('- ', ''),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
} else if (previousLine && previousLine.startsWith('1. ')) {
|
||||||
|
this.convertBlock('list', {
|
||||||
|
style: 'ordered',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
content: previousLine.replace('1. ', ''),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
} else if (previousLine && this.canBeEmbed(previousLine)) {
|
||||||
|
this.wrapper.textContent = ''
|
||||||
|
this.convertBlock('embed', {
|
||||||
|
source: previousLine,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async convertBlock(type, data, index = null) {
|
||||||
|
const currentIndex = this.api.blocks.getCurrentBlockIndex()
|
||||||
|
const currentBlock = this.api.blocks.getBlockByIndex(currentIndex)
|
||||||
|
await this.api.blocks.convert(currentBlock.id, type, data)
|
||||||
|
this.api.caret.focus(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
save(blockContent) {
|
||||||
|
return {
|
||||||
|
text: blockContent.innerHTML,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hasImage(line) {
|
||||||
|
return /!\[.+?\]\(.+?\)/.test(line)
|
||||||
|
}
|
||||||
|
|
||||||
|
extractImage(line) {
|
||||||
|
const match = line.match(/!\[(.+?)\]\((.+?)\)/)
|
||||||
|
if (match) {
|
||||||
|
return { alt: match[1], url: match[2] }
|
||||||
|
}
|
||||||
|
return { alt: '', url: '' }
|
||||||
|
}
|
||||||
|
|
||||||
|
hasLink(line) {
|
||||||
|
return /\[.+?\]\(.+?\)/.test(line)
|
||||||
|
}
|
||||||
|
|
||||||
|
extractLink(line) {
|
||||||
|
const match = line.match(/\[(.+?)\]\((.+?)\)/)
|
||||||
|
if (match) {
|
||||||
|
return { text: match[1], url: match[2] }
|
||||||
|
}
|
||||||
|
return { text: '', url: '' }
|
||||||
|
}
|
||||||
|
|
||||||
|
canBeEmbed(line) {
|
||||||
|
return /^https?:\/\/.+/.test(line)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Markdown
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import QuizBlock from '@/components/QuizBlock.vue'
|
import QuizBlock from '@/components/QuizBlock.vue'
|
||||||
import QuizPlugin from '@/components/QuizPlugin.vue'
|
import AssessmentPlugin from '@/components/AssessmentPlugin.vue'
|
||||||
import { createApp, h } from 'vue'
|
import { createApp, h } from 'vue'
|
||||||
import { usersStore } from '../stores/user'
|
import { usersStore } from '../stores/user'
|
||||||
import translationPlugin from '../translation'
|
import translationPlugin from '../translation'
|
||||||
@@ -63,8 +63,8 @@ export class Quiz {
|
|||||||
if (this.readOnly) {
|
if (this.readOnly) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const app = createApp(QuizPlugin, {
|
const app = createApp(AssessmentPlugin, {
|
||||||
onQuizAddition: (quiz) => {
|
onAddition: (quiz) => {
|
||||||
this.data.quiz = quiz
|
this.data.quiz = quiz
|
||||||
this.renderQuiz(quiz)
|
this.renderQuiz(quiz)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -471,6 +471,33 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2"
|
resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2"
|
||||||
integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==
|
integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==
|
||||||
|
|
||||||
|
"@svgdotjs/svg.draggable.js@^3.0.4":
|
||||||
|
version "3.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@svgdotjs/svg.draggable.js/-/svg.draggable.js-3.0.4.tgz#505430e86b5e73b5b5abba12ac6002633897324e"
|
||||||
|
integrity sha512-vWi/Col5Szo74HJVBgMHz23kLVljt3jvngmh0DzST45iO2ubIZ487uUAHIxSZH2tVRyiaaTL+Phaasgp4gUD2g==
|
||||||
|
|
||||||
|
"@svgdotjs/svg.filter.js@^3.0.8":
|
||||||
|
version "3.0.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/@svgdotjs/svg.filter.js/-/svg.filter.js-3.0.8.tgz#998cb2481a871fa70d7dbaa891c886b335c562d7"
|
||||||
|
integrity sha512-YshF2YDaeRA2StyzAs5nUPrev7npQ38oWD0eTRwnsciSL2KrRPMoUw8BzjIXItb3+dccKGTX3IQOd2NFzmHkog==
|
||||||
|
dependencies:
|
||||||
|
"@svgdotjs/svg.js" "^3.1.1"
|
||||||
|
|
||||||
|
"@svgdotjs/svg.js@^3.1.1", "@svgdotjs/svg.js@^3.2.4":
|
||||||
|
version "3.2.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@svgdotjs/svg.js/-/svg.js-3.2.4.tgz#4716be92a64c66b29921b63f7235fcfb953fb13a"
|
||||||
|
integrity sha512-BjJ/7vWNowlX3Z8O4ywT58DqbNRyYlkk6Yz/D13aB7hGmfQTvGX4Tkgtm/ApYlu9M7lCQi15xUEidqMUmdMYwg==
|
||||||
|
|
||||||
|
"@svgdotjs/svg.resize.js@^2.0.2":
|
||||||
|
version "2.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@svgdotjs/svg.resize.js/-/svg.resize.js-2.0.5.tgz#732e4cae15d09ad3021adeac63bc9fad0dc7255a"
|
||||||
|
integrity sha512-4heRW4B1QrJeENfi7326lUPYBCevj78FJs8kfeDxn5st0IYPIRXoTtOSYvTzFWgaWWXd3YCDE6ao4fmv91RthA==
|
||||||
|
|
||||||
|
"@svgdotjs/svg.select.js@^4.0.1":
|
||||||
|
version "4.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@svgdotjs/svg.select.js/-/svg.select.js-4.0.2.tgz#80a10409e6c73206218690eac5c9f94f8c8909b5"
|
||||||
|
integrity sha512-5gWdrvoQX3keo03SCmgaBbD+kFftq0F/f2bzCbNnpkkvW6tk4rl4MakORzFuNjvXPWwB4az9GwuvVxQVnjaK2g==
|
||||||
|
|
||||||
"@swc/helpers@^0.5.0":
|
"@swc/helpers@^0.5.0":
|
||||||
version "0.5.15"
|
version "0.5.15"
|
||||||
resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.15.tgz#79efab344c5819ecf83a43f3f9f811fc84b516d7"
|
resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.15.tgz#79efab344c5819ecf83a43f3f9f811fc84b516d7"
|
||||||
@@ -887,6 +914,11 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
vue-demi ">=0.14.8"
|
vue-demi ">=0.14.8"
|
||||||
|
|
||||||
|
"@yr/monotone-cubic-spline@^1.0.3":
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz#7272d89f8e4f6fb7a1600c28c378cc18d3b577b9"
|
||||||
|
integrity sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==
|
||||||
|
|
||||||
ace-builds@^1.36.2:
|
ace-builds@^1.36.2:
|
||||||
version "1.36.5"
|
version "1.36.5"
|
||||||
resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.36.5.tgz#ae9cc7a32eccc2f484926131c00545cd6b78a6a6"
|
resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.36.5.tgz#ae9cc7a32eccc2f484926131c00545cd6b78a6a6"
|
||||||
@@ -927,6 +959,18 @@ anymatch@~3.1.2:
|
|||||||
normalize-path "^3.0.0"
|
normalize-path "^3.0.0"
|
||||||
picomatch "^2.0.4"
|
picomatch "^2.0.4"
|
||||||
|
|
||||||
|
apexcharts@^4.3.0:
|
||||||
|
version "4.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/apexcharts/-/apexcharts-4.3.0.tgz#eccf28e830ce1b5e018cfc0e99d1c6af0076c9c7"
|
||||||
|
integrity sha512-PfvZQpv91T68hzry9l5zP3Gip7sQvF0nFK91uCBrswIKX7rbIdbVNS4fOks9m9yP3Ppgs6LHgU2M/mjoG4NM0A==
|
||||||
|
dependencies:
|
||||||
|
"@svgdotjs/svg.draggable.js" "^3.0.4"
|
||||||
|
"@svgdotjs/svg.filter.js" "^3.0.8"
|
||||||
|
"@svgdotjs/svg.js" "^3.2.4"
|
||||||
|
"@svgdotjs/svg.resize.js" "^2.0.2"
|
||||||
|
"@svgdotjs/svg.select.js" "^4.0.1"
|
||||||
|
"@yr/monotone-cubic-spline" "^1.0.3"
|
||||||
|
|
||||||
arg@^5.0.2:
|
arg@^5.0.2:
|
||||||
version "5.0.2"
|
version "5.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
|
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
|
||||||
@@ -2164,6 +2208,11 @@ vue-router@^4.0.12:
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@vue/devtools-api" "^6.6.4"
|
"@vue/devtools-api" "^6.6.4"
|
||||||
|
|
||||||
|
vue3-apexcharts@^1.8.0:
|
||||||
|
version "1.8.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/vue3-apexcharts/-/vue3-apexcharts-1.8.0.tgz#1984648d966aa91bc4dc3e87fa847f5289f7f1cf"
|
||||||
|
integrity sha512-5tSD4mXTBbIJ9ir+58qHE6oNtIe0RNgqIRYMKpcsIaxkKtwUww4JhvPkpUFlmiW4OJbbdklgjleXq1lfcM4gdA==
|
||||||
|
|
||||||
vue@^3.4.23:
|
vue@^3.4.23:
|
||||||
version "3.5.13"
|
version "3.5.13"
|
||||||
resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.13.tgz#9f760a1a982b09c0c04a867903fc339c9f29ec0a"
|
resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.13.tgz#9f760a1a982b09c0c04a867903fc339c9f29ec0a"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
__version__ = "2.16.0"
|
__version__ = "2.18.0"
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ from frappe.utils import time_diff, now_datetime, get_datetime, flt
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
from lms.lms.utils import get_average_rating, get_lesson_count
|
from lms.lms.utils import get_average_rating, get_lesson_count
|
||||||
from xml.dom.minidom import parseString
|
from xml.dom.minidom import parseString
|
||||||
|
from lms.lms.doctype.course_lesson.course_lesson import save_progress
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
@@ -168,6 +169,7 @@ def get_user_info():
|
|||||||
user.is_instructor = "Course Creator" in user.roles
|
user.is_instructor = "Course Creator" in user.roles
|
||||||
user.is_moderator = "Moderator" in user.roles
|
user.is_moderator = "Moderator" in user.roles
|
||||||
user.is_evaluator = "Batch Evaluator" in user.roles
|
user.is_evaluator = "Batch Evaluator" in user.roles
|
||||||
|
user.is_student = "LMS Student" in user.roles
|
||||||
return user
|
return user
|
||||||
|
|
||||||
|
|
||||||
@@ -841,8 +843,6 @@ def delete_course(course):
|
|||||||
frappe.delete_doc("Lesson Reference", lesson)
|
frappe.delete_doc("Lesson Reference", lesson)
|
||||||
|
|
||||||
for lesson in lessons:
|
for lesson in lessons:
|
||||||
frappe.db.delete("LMS Course Progress", {"lesson": lesson})
|
|
||||||
|
|
||||||
topics = frappe.get_all(
|
topics = frappe.get_all(
|
||||||
"Discussion Topic",
|
"Discussion Topic",
|
||||||
{"reference_doctype": "Course Lesson", "reference_docname": lesson},
|
{"reference_doctype": "Course Lesson", "reference_docname": lesson},
|
||||||
@@ -862,6 +862,9 @@ def delete_course(course):
|
|||||||
for chapter in chapters:
|
for chapter in chapters:
|
||||||
frappe.delete_doc("Course Chapter", chapter)
|
frappe.delete_doc("Course Chapter", chapter)
|
||||||
|
|
||||||
|
frappe.db.delete("LMS Course Progress", {"course": course})
|
||||||
|
frappe.db.delete("LMS Quiz", {"course": course})
|
||||||
|
frappe.db.delete("LMS Quiz Submission", {"course": course})
|
||||||
frappe.db.delete("LMS Enrollment", {"course": course})
|
frappe.db.delete("LMS Enrollment", {"course": course})
|
||||||
frappe.delete_doc("LMS Course", course)
|
frappe.delete_doc("LMS Course", course)
|
||||||
|
|
||||||
@@ -1029,3 +1032,14 @@ def delete_scorm_package(scorm_package_path):
|
|||||||
scorm_package_path = frappe.get_site_path("public", scorm_package_path[1:])
|
scorm_package_path = frappe.get_site_path("public", scorm_package_path[1:])
|
||||||
if os.path.exists(scorm_package_path):
|
if os.path.exists(scorm_package_path):
|
||||||
shutil.rmtree(scorm_package_path)
|
shutil.rmtree(scorm_package_path)
|
||||||
|
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def mark_lesson_progress(course, chapter_number, lesson_number):
|
||||||
|
chapter_name = frappe.get_value(
|
||||||
|
"Chapter Reference", {"parent": course, "idx": chapter_number}, "chapter"
|
||||||
|
)
|
||||||
|
lesson_name = frappe.get_value(
|
||||||
|
"Lesson Reference", {"parent": chapter_name, "idx": lesson_number}, "lesson"
|
||||||
|
)
|
||||||
|
save_progress(lesson_name, course)
|
||||||
|
|||||||
@@ -89,19 +89,17 @@ def save_progress(lesson, course):
|
|||||||
"LMS Enrollment", {"course": course, "member": frappe.session.user}
|
"LMS Enrollment", {"course": course, "member": frappe.session.user}
|
||||||
)
|
)
|
||||||
if not membership:
|
if not membership:
|
||||||
return
|
|
||||||
|
|
||||||
frappe.db.set_value("LMS Enrollment", membership, "current_lesson", lesson)
|
|
||||||
|
|
||||||
if frappe.db.exists(
|
|
||||||
"LMS Course Progress", {"lesson": lesson, "member": frappe.session.user}
|
|
||||||
):
|
|
||||||
return
|
|
||||||
|
|
||||||
quiz_completed = get_quiz_progress(lesson)
|
|
||||||
if not quiz_completed:
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
frappe.db.set_value("LMS Enrollment", membership, "current_lesson", lesson)
|
||||||
|
already_completed = frappe.db.exists(
|
||||||
|
"LMS Course Progress", {"lesson": lesson, "member": frappe.session.user}
|
||||||
|
)
|
||||||
|
|
||||||
|
quiz_completed = get_quiz_progress(lesson)
|
||||||
|
assignment_completed = get_assignment_progress(lesson)
|
||||||
|
|
||||||
|
if not already_completed and quiz_completed and assignment_completed:
|
||||||
frappe.get_doc(
|
frappe.get_doc(
|
||||||
{
|
{
|
||||||
"doctype": "LMS Course Progress",
|
"doctype": "LMS Course Progress",
|
||||||
@@ -159,6 +157,32 @@ def get_quiz_progress(lesson):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def get_assignment_progress(lesson):
|
||||||
|
lesson_details = frappe.db.get_value(
|
||||||
|
"Course Lesson", lesson, ["body", "content"], as_dict=1
|
||||||
|
)
|
||||||
|
assignments = []
|
||||||
|
|
||||||
|
if lesson_details.content:
|
||||||
|
content = json.loads(lesson_details.content)
|
||||||
|
|
||||||
|
for block in content.get("blocks"):
|
||||||
|
if block.get("type") == "assignment":
|
||||||
|
assignments.append(block.get("data").get("assignment"))
|
||||||
|
|
||||||
|
elif lesson_details.body:
|
||||||
|
macros = find_macros(lesson_details.body)
|
||||||
|
assignments = [value for name, value in macros if name == "Assignment"]
|
||||||
|
|
||||||
|
for assignment in assignments:
|
||||||
|
if not frappe.db.exists(
|
||||||
|
"LMS Assignment Submission",
|
||||||
|
{"assignment": assignment, "member": frappe.session.user},
|
||||||
|
):
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_lesson_info(chapter):
|
def get_lesson_info(chapter):
|
||||||
return frappe.db.get_value("Course Chapter", chapter, "course")
|
return frappe.db.get_value("Course Chapter", chapter, "course")
|
||||||
|
|||||||
@@ -9,10 +9,11 @@
|
|||||||
"engine": "InnoDB",
|
"engine": "InnoDB",
|
||||||
"field_order": [
|
"field_order": [
|
||||||
"title",
|
"title",
|
||||||
"grade_assignment",
|
|
||||||
"question",
|
"question",
|
||||||
"column_break_hmwv",
|
"column_break_hmwv",
|
||||||
"type",
|
"type",
|
||||||
|
"grade_assignment",
|
||||||
|
"section_break_sjti",
|
||||||
"show_answer",
|
"show_answer",
|
||||||
"answer"
|
"answer"
|
||||||
],
|
],
|
||||||
@@ -20,7 +21,8 @@
|
|||||||
{
|
{
|
||||||
"fieldname": "question",
|
"fieldname": "question",
|
||||||
"fieldtype": "Text Editor",
|
"fieldtype": "Text Editor",
|
||||||
"label": "Question"
|
"label": "Question",
|
||||||
|
"reqd": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "type",
|
"fieldname": "type",
|
||||||
@@ -28,14 +30,16 @@
|
|||||||
"in_list_view": 1,
|
"in_list_view": 1,
|
||||||
"in_standard_filter": 1,
|
"in_standard_filter": 1,
|
||||||
"label": "Type",
|
"label": "Type",
|
||||||
"options": "Document\nPDF\nURL\nImage\nText"
|
"options": "Document\nPDF\nURL\nImage\nText",
|
||||||
|
"reqd": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "title",
|
"fieldname": "title",
|
||||||
"fieldtype": "Data",
|
"fieldtype": "Data",
|
||||||
"in_list_view": 1,
|
"in_list_view": 1,
|
||||||
"in_standard_filter": 1,
|
"in_standard_filter": 1,
|
||||||
"label": "Title"
|
"label": "Title",
|
||||||
|
"reqd": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "column_break_hmwv",
|
"fieldname": "column_break_hmwv",
|
||||||
@@ -60,11 +64,15 @@
|
|||||||
"fieldname": "grade_assignment",
|
"fieldname": "grade_assignment",
|
||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"label": "Grade Assignment"
|
"label": "Grade Assignment"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "section_break_sjti",
|
||||||
|
"fieldtype": "Section Break"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"index_web_pages_for_search": 1,
|
"index_web_pages_for_search": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2024-04-05 12:01:36.601160",
|
"modified": "2024-12-24 09:36:31.464508",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "LMS",
|
"module": "LMS",
|
||||||
"name": "LMS Assignment",
|
"name": "LMS Assignment",
|
||||||
|
|||||||
@@ -14,19 +14,17 @@
|
|||||||
"member",
|
"member",
|
||||||
"member_name",
|
"member_name",
|
||||||
"section_break_dlzh",
|
"section_break_dlzh",
|
||||||
"question",
|
|
||||||
"column_break_zvis",
|
|
||||||
"assignment_attachment",
|
"assignment_attachment",
|
||||||
"answer",
|
"answer",
|
||||||
"section_break_rqal",
|
"column_break_oqqy",
|
||||||
"status",
|
|
||||||
"evaluator",
|
"evaluator",
|
||||||
"column_break_esgd",
|
"status",
|
||||||
"comments",
|
"comments",
|
||||||
"section_break_cwaw",
|
"section_break_rqal",
|
||||||
"lesson",
|
"question",
|
||||||
|
"column_break_esgd",
|
||||||
"course",
|
"course",
|
||||||
"column_break_ygdu"
|
"lesson"
|
||||||
],
|
],
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
@@ -89,8 +87,7 @@
|
|||||||
"fieldname": "evaluator",
|
"fieldname": "evaluator",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
"label": "Evaluator",
|
"label": "Evaluator",
|
||||||
"options": "User",
|
"options": "User"
|
||||||
"read_only": 1
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"depends_on": "eval:!([\"URL\", \"Text\"]).includes(doc.type);",
|
"depends_on": "eval:!([\"URL\", \"Text\"]).includes(doc.type);",
|
||||||
@@ -128,14 +125,6 @@
|
|||||||
"fieldname": "column_break_esgd",
|
"fieldname": "column_break_esgd",
|
||||||
"fieldtype": "Column Break"
|
"fieldtype": "Column Break"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"fieldname": "section_break_cwaw",
|
|
||||||
"fieldtype": "Section Break"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fieldname": "column_break_ygdu",
|
|
||||||
"fieldtype": "Column Break"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"depends_on": "eval:([\"URL\", \"Text\"]).includes(doc.type);",
|
"depends_on": "eval:([\"URL\", \"Text\"]).includes(doc.type);",
|
||||||
"fieldname": "answer",
|
"fieldname": "answer",
|
||||||
@@ -148,14 +137,14 @@
|
|||||||
"fieldtype": "Section Break"
|
"fieldtype": "Section Break"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "column_break_zvis",
|
"fieldname": "column_break_oqqy",
|
||||||
"fieldtype": "Column Break"
|
"fieldtype": "Column Break"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"index_web_pages_for_search": 1,
|
"index_web_pages_for_search": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"make_attachments_public": 1,
|
"make_attachments_public": 1,
|
||||||
"modified": "2024-04-05 15:57:22.758563",
|
"modified": "2024-12-24 21:22:35.212732",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "LMS",
|
"module": "LMS",
|
||||||
"name": "LMS Assignment Submission",
|
"name": "LMS Assignment Submission",
|
||||||
|
|||||||
@@ -6,12 +6,14 @@ from frappe import _
|
|||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe.utils import validate_url, validate_email_address
|
from frappe.utils import validate_url, validate_email_address
|
||||||
from frappe.email.doctype.email_template.email_template import get_email_template
|
from frappe.email.doctype.email_template.email_template import get_email_template
|
||||||
|
from frappe.desk.doctype.notification_log.notification_log import make_notification_logs
|
||||||
|
|
||||||
|
|
||||||
class LMSAssignmentSubmission(Document):
|
class LMSAssignmentSubmission(Document):
|
||||||
def validate(self):
|
def validate(self):
|
||||||
self.validate_duplicates()
|
self.validate_duplicates()
|
||||||
self.validate_url()
|
self.validate_url()
|
||||||
|
self.validate_status()
|
||||||
|
|
||||||
def after_insert(self):
|
def after_insert(self):
|
||||||
if not frappe.flags.in_test:
|
if not frappe.flags.in_test:
|
||||||
@@ -69,6 +71,28 @@ class LMSAssignmentSubmission(Document):
|
|||||||
header=[subject, "green"],
|
header=[subject, "green"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def validate_status(self):
|
||||||
|
doc_before_save = self.get_doc_before_save()
|
||||||
|
if doc_before_save.status != self.status or doc_before_save.comments != self.comments:
|
||||||
|
self.trigger_update_notification()
|
||||||
|
|
||||||
|
def trigger_update_notification(self):
|
||||||
|
notification = frappe._dict(
|
||||||
|
{
|
||||||
|
"subject": _(
|
||||||
|
"There has been an update on your submission for assignment {0}"
|
||||||
|
).format(self.assignment_title),
|
||||||
|
"email_content": self.comments,
|
||||||
|
"document_type": self.doctype,
|
||||||
|
"document_name": self.name,
|
||||||
|
"for_user": self.owner,
|
||||||
|
"from_user": self.evaluator,
|
||||||
|
"type": "Alert",
|
||||||
|
"link": f"/assignment-submission/{self.assignment}/{self.name}",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
make_notification_logs(notification, [self.member])
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def upload_assignment(
|
def upload_assignment(
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ class LMSQuizSubmission(Document):
|
|||||||
self.notify_member()
|
self.notify_member()
|
||||||
|
|
||||||
def validate_marks(self):
|
def validate_marks(self):
|
||||||
|
self.score = 0
|
||||||
for row in self.result:
|
for row in self.result:
|
||||||
if cint(row.marks) > cint(row.marks_out_of):
|
if cint(row.marks) > cint(row.marks_out_of):
|
||||||
frappe.throw(
|
frappe.throw(
|
||||||
|
|||||||
@@ -874,26 +874,6 @@ def is_onboarding_complete():
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def has_submitted_assessment(assessment, type, member=None):
|
|
||||||
if not member:
|
|
||||||
member = frappe.session.user
|
|
||||||
|
|
||||||
doctype = (
|
|
||||||
"LMS Assignment Submission" if type == "LMS Assignment" else "LMS Quiz Submission"
|
|
||||||
)
|
|
||||||
docfield = "assignment" if type == "LMS Assignment" else "quiz"
|
|
||||||
|
|
||||||
filters = {}
|
|
||||||
filters[docfield] = assessment
|
|
||||||
filters["member"] = member
|
|
||||||
return frappe.db.exists(doctype, filters)
|
|
||||||
|
|
||||||
|
|
||||||
def has_graded_assessment(submission):
|
|
||||||
status = frappe.db.get_value("LMS Assignment Submission", submission, "status")
|
|
||||||
return False if status == "Not Graded" else True
|
|
||||||
|
|
||||||
|
|
||||||
def get_evaluator(course, batch):
|
def get_evaluator(course, batch):
|
||||||
evaluator = None
|
evaluator = None
|
||||||
evaluator = frappe.db.get_value(
|
evaluator = frappe.db.get_value(
|
||||||
@@ -1347,7 +1327,6 @@ def get_question_details(question):
|
|||||||
for i in range(1, 5):
|
for i in range(1, 5):
|
||||||
fields.append(f"option_{i}")
|
fields.append(f"option_{i}")
|
||||||
fields.append(f"explanation_{i}")
|
fields.append(f"explanation_{i}")
|
||||||
fields.append(f"is_correct_{i}")
|
|
||||||
|
|
||||||
question_details = frappe.db.get_value("LMS Question", question, fields, as_dict=1)
|
question_details = frappe.db.get_value("LMS Question", question, fields, as_dict=1)
|
||||||
return question_details
|
return question_details
|
||||||
@@ -1441,7 +1420,7 @@ def get_quiz_details(assessment, member):
|
|||||||
if len(existing_submission):
|
if len(existing_submission):
|
||||||
assessment.submission = existing_submission[0]
|
assessment.submission = existing_submission[0]
|
||||||
assessment.completed = True
|
assessment.completed = True
|
||||||
assessment.status = assessment.submission.score
|
assessment.status = assessment.submission.percentage or assessment.submission.score
|
||||||
else:
|
else:
|
||||||
assessment.status = "Not Attempted"
|
assessment.status = "Not Attempted"
|
||||||
assessment.color = "red"
|
assessment.color = "red"
|
||||||
@@ -1459,13 +1438,11 @@ def get_quiz_details(assessment, member):
|
|||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_batch_students(batch):
|
def get_batch_students(batch):
|
||||||
students = []
|
students = []
|
||||||
|
|
||||||
students_list = frappe.get_all(
|
students_list = frappe.get_all(
|
||||||
"Batch Student", filters={"parent": batch}, fields=["student", "name"]
|
"Batch Student", filters={"parent": batch}, fields=["student", "name"]
|
||||||
)
|
)
|
||||||
|
|
||||||
batch_courses = frappe.get_all("Batch Course", {"parent": batch}, pluck="course")
|
batch_courses = frappe.get_all("Batch Course", {"parent": batch}, ["course", "title"])
|
||||||
|
|
||||||
assessments = frappe.get_all(
|
assessments = frappe.get_all(
|
||||||
"LMS Assessment",
|
"LMS Assessment",
|
||||||
filters={"parent": batch},
|
filters={"parent": batch},
|
||||||
@@ -1483,29 +1460,76 @@ def get_batch_students(batch):
|
|||||||
)
|
)
|
||||||
detail.last_active = format_datetime(detail.last_active, "dd MMM YY")
|
detail.last_active = format_datetime(detail.last_active, "dd MMM YY")
|
||||||
detail.name = student.name
|
detail.name = student.name
|
||||||
students.append(detail)
|
detail.courses = frappe._dict()
|
||||||
|
detail.assessments = frappe._dict()
|
||||||
|
|
||||||
|
""" Iterate through courses and track their progress """
|
||||||
for course in batch_courses:
|
for course in batch_courses:
|
||||||
progress = frappe.db.get_value(
|
progress = frappe.db.get_value(
|
||||||
"LMS Enrollment", {"course": course, "member": student.student}, "progress"
|
"LMS Enrollment", {"course": course.course, "member": student.student}, "progress"
|
||||||
)
|
)
|
||||||
|
detail.courses[course.title] = progress
|
||||||
if progress == 100:
|
if progress == 100:
|
||||||
courses_completed += 1
|
courses_completed += 1
|
||||||
|
|
||||||
detail.courses_completed = courses_completed
|
""" Iterate through assessments and track their progress """
|
||||||
|
|
||||||
for assessment in assessments:
|
for assessment in assessments:
|
||||||
if has_submitted_assessment(
|
title = frappe.db.get_value(
|
||||||
|
assessment.assessment_type, assessment.assessment_name, "title"
|
||||||
|
)
|
||||||
|
status = has_submitted_assessment(
|
||||||
assessment.assessment_name, assessment.assessment_type, student.student
|
assessment.assessment_name, assessment.assessment_type, student.student
|
||||||
):
|
)
|
||||||
|
detail.assessments[title] = status
|
||||||
|
if status not in ["Not Attempted", 0]:
|
||||||
assessments_completed += 1
|
assessments_completed += 1
|
||||||
|
|
||||||
|
detail.courses_completed = courses_completed
|
||||||
detail.assessments_completed = assessments_completed
|
detail.assessments_completed = assessments_completed
|
||||||
|
if len(batch_courses) + len(assessments):
|
||||||
|
detail.progress = flt(
|
||||||
|
(
|
||||||
|
(courses_completed + assessments_completed)
|
||||||
|
/ (len(batch_courses) + len(assessments))
|
||||||
|
* 100
|
||||||
|
),
|
||||||
|
2,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
detail.progress = 0
|
||||||
|
|
||||||
|
students.append(detail)
|
||||||
|
|
||||||
return students
|
return students
|
||||||
|
|
||||||
|
|
||||||
|
def has_submitted_assessment(assessment, assessment_type, member=None):
|
||||||
|
if not member:
|
||||||
|
member = frappe.session.user
|
||||||
|
|
||||||
|
if assessment_type == "LMS Assignment":
|
||||||
|
doctype = "LMS Assignment Submission"
|
||||||
|
docfield = "assignment"
|
||||||
|
fields = ["status"]
|
||||||
|
not_attempted = "Not Attempted"
|
||||||
|
elif assessment_type == "LMS Quiz":
|
||||||
|
doctype = "LMS Quiz Submission"
|
||||||
|
docfield = "quiz"
|
||||||
|
fields = ["percentage"]
|
||||||
|
not_attempted = 0
|
||||||
|
|
||||||
|
filters = {}
|
||||||
|
filters[docfield] = assessment
|
||||||
|
filters["member"] = member
|
||||||
|
|
||||||
|
attempt = frappe.db.exists(doctype, filters)
|
||||||
|
if attempt:
|
||||||
|
attempt_details = frappe.db.get_value(doctype, filters, fields)
|
||||||
|
return attempt_details
|
||||||
|
else:
|
||||||
|
return not_attempted
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_discussion_topics(doctype, docname, single_thread):
|
def get_discussion_topics(doctype, docname, single_thread):
|
||||||
if single_thread:
|
if single_thread:
|
||||||
|
|||||||
100
lms/locale/ar.po
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-09 23:30\n"
|
"PO-Revision-Date: 2024-12-31 03:29\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: Arabic\n"
|
"Language-Team: Arabic\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -101,7 +101,7 @@ msgstr "نشط"
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -143,6 +143,10 @@ msgstr ""
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -349,6 +353,7 @@ msgstr ""
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -374,6 +379,8 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -961,6 +968,7 @@ msgid "Company Website"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -978,6 +986,10 @@ msgstr ""
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr "أكتمل"
|
msgstr "أكتمل"
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1231,7 +1243,7 @@ msgstr ""
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1249,6 +1261,9 @@ msgstr ""
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1406,7 +1421,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "حذف"
|
msgstr "حذف"
|
||||||
|
|
||||||
@@ -1414,7 +1429,7 @@ msgstr "حذف"
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1426,7 +1441,7 @@ msgstr ""
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1702,7 +1717,7 @@ msgstr ""
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1738,6 +1753,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2467,10 +2483,6 @@ msgstr ""
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2792,7 +2804,7 @@ msgstr ""
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr "الروابط"
|
msgstr "الروابط"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2812,7 +2824,9 @@ msgstr ""
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr "تحميل المزيد"
|
msgstr "تحميل المزيد"
|
||||||
|
|
||||||
@@ -2907,7 +2921,7 @@ msgstr ""
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2957,7 +2971,7 @@ msgstr "متوسط:"
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3230,7 +3244,7 @@ msgstr "التالي"
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3291,7 +3305,7 @@ msgstr ""
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3407,7 +3421,7 @@ msgstr ""
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3558,7 +3572,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3653,7 +3667,7 @@ msgstr "معلق"
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr "النسبة المئوية"
|
msgstr "النسبة المئوية"
|
||||||
@@ -3687,7 +3701,7 @@ msgstr "يرجى التحقق من بريدك الالكتروني للتحقق"
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3936,6 +3950,9 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4040,8 +4057,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4059,7 +4075,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4089,8 +4105,8 @@ msgstr ""
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4328,7 +4344,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4629,6 +4645,7 @@ msgstr "حالة"
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4700,13 +4717,14 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4758,7 +4776,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4769,7 +4787,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4791,7 +4809,7 @@ msgstr "ملخص"
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr "الأحد"
|
msgstr "الأحد"
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4946,7 +4964,7 @@ msgstr ""
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4954,7 +4972,7 @@ msgstr ""
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4977,7 +4995,7 @@ msgstr ""
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5083,7 +5101,7 @@ msgstr ""
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5119,7 +5137,7 @@ msgstr "إلى"
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr "إلى تاريخ"
|
msgstr "إلى تاريخ"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5136,7 +5154,7 @@ msgid "Total"
|
|||||||
msgstr "الاجمالي غير شامل الضريبة"
|
msgstr "الاجمالي غير شامل الضريبة"
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -5537,11 +5555,11 @@ msgstr ""
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
100
lms/locale/bs.po
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-09 23:31\n"
|
"PO-Revision-Date: 2024-12-31 03:29\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: Bosnian\n"
|
"Language-Team: Bosnian\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -101,7 +101,7 @@ msgstr "Aktivan"
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -143,6 +143,10 @@ msgstr ""
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -349,6 +353,7 @@ msgstr ""
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -374,6 +379,8 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -961,6 +968,7 @@ msgid "Company Website"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -978,6 +986,10 @@ msgstr ""
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr "Završeno"
|
msgstr "Završeno"
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1231,7 +1243,7 @@ msgstr ""
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1249,6 +1261,9 @@ msgstr ""
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1406,7 +1421,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Izbriši"
|
msgstr "Izbriši"
|
||||||
|
|
||||||
@@ -1414,7 +1429,7 @@ msgstr "Izbriši"
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1426,7 +1441,7 @@ msgstr ""
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1702,7 +1717,7 @@ msgstr ""
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1738,6 +1753,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2467,10 +2483,6 @@ msgstr ""
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2792,7 +2804,7 @@ msgstr ""
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr "Veze"
|
msgstr "Veze"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2812,7 +2824,9 @@ msgstr ""
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr "Učitaj još"
|
msgstr "Učitaj još"
|
||||||
|
|
||||||
@@ -2907,7 +2921,7 @@ msgstr ""
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2957,7 +2971,7 @@ msgstr "Srednje:"
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3230,7 +3244,7 @@ msgstr "Sljedeći"
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3291,7 +3305,7 @@ msgstr ""
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3407,7 +3421,7 @@ msgstr ""
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3558,7 +3572,7 @@ msgstr "Prolaz"
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3653,7 +3667,7 @@ msgstr "Na čekanju"
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr "Procenat"
|
msgstr "Procenat"
|
||||||
@@ -3687,7 +3701,7 @@ msgstr "Molimo provjerite svoju e-poštu za potvrdu"
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3936,6 +3950,9 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4040,8 +4057,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4059,7 +4075,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4089,8 +4105,8 @@ msgstr ""
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4328,7 +4344,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4629,6 +4645,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4700,13 +4717,14 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4758,7 +4776,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4769,7 +4787,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4791,7 +4809,7 @@ msgstr ""
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4946,7 +4964,7 @@ msgstr ""
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4954,7 +4972,7 @@ msgstr ""
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4977,7 +4995,7 @@ msgstr ""
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5083,7 +5101,7 @@ msgstr ""
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5119,7 +5137,7 @@ msgstr ""
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5136,7 +5154,7 @@ msgid "Total"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -5537,11 +5555,11 @@ msgstr ""
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
100
lms/locale/de.po
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-09 23:31\n"
|
"PO-Revision-Date: 2024-12-31 03:29\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: German\n"
|
"Language-Team: German\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -101,7 +101,7 @@ msgstr "Aktiv"
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -143,6 +143,10 @@ msgstr ""
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr "Kurs hinzufügen"
|
msgstr "Kurs hinzufügen"
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -349,6 +353,7 @@ msgstr "Benutzerkategorie bei der Anmeldung erfragen"
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr "Prüfung"
|
msgstr "Prüfung"
|
||||||
@@ -374,6 +379,8 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -961,6 +968,7 @@ msgid "Company Website"
|
|||||||
msgstr "Unternehmenswebseite"
|
msgstr "Unternehmenswebseite"
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -978,6 +986,10 @@ msgstr ""
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr "Abgeschlossen"
|
msgstr "Abgeschlossen"
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1231,7 +1243,7 @@ msgstr ""
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1249,6 +1261,9 @@ msgstr ""
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1406,7 +1421,7 @@ msgstr "Abschlussart"
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
|
|
||||||
@@ -1414,7 +1429,7 @@ msgstr "Löschen"
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1426,7 +1441,7 @@ msgstr ""
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1702,7 +1717,7 @@ msgstr ""
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr "Anzahl der Einschreibungen"
|
msgstr "Anzahl der Einschreibungen"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1738,6 +1753,7 @@ msgstr "Geben Sie die richtige Antwort ein"
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2467,10 +2483,6 @@ msgstr ""
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2792,7 +2804,7 @@ msgstr ""
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr "Verknüpfungen"
|
msgstr "Verknüpfungen"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2812,7 +2824,9 @@ msgstr ""
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr "Mehr laden"
|
msgstr "Mehr laden"
|
||||||
|
|
||||||
@@ -2907,7 +2921,7 @@ msgstr "Als gelesen markieren"
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2957,7 +2971,7 @@ msgstr "Mittel:"
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3230,7 +3244,7 @@ msgstr "Weiter"
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr "Nächste Frage"
|
msgstr "Nächste Frage"
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3291,7 +3305,7 @@ msgstr "Keine Live-Kurse geplant"
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3407,7 +3421,7 @@ msgstr ""
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr "Es werden nur Dateien vom Typ {0} akzeptiert."
|
msgstr "Es werden nur Dateien vom Typ {0} akzeptiert."
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3558,7 +3572,7 @@ msgstr "Erfolgreich"
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3653,7 +3667,7 @@ msgstr "Ausstehend"
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr "Prozentsatz"
|
msgstr "Prozentsatz"
|
||||||
@@ -3687,7 +3701,7 @@ msgstr "Bitte überprüfen Sie Ihren Posteingang. Wir haben Ihnen eine E-Mail mi
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr "Bitte klicken Sie auf die folgende Schaltfläche, um Ihr neues Passwort festzulegen"
|
msgstr "Bitte klicken Sie auf die folgende Schaltfläche, um Ihr neues Passwort festzulegen"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3936,6 +3950,9 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4040,8 +4057,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4059,7 +4075,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr "Quiz-Einreichung"
|
msgstr "Quiz-Einreichung"
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4089,8 +4105,8 @@ msgstr ""
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr "Das Quiz wird am Ende der Lektion angezeigt."
|
msgstr "Das Quiz wird am Ende der Lektion angezeigt."
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4328,7 +4344,7 @@ msgstr "Geltungsbereich"
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4629,6 +4645,7 @@ msgstr "Bundesland"
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4700,13 +4717,14 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr "Schüler"
|
msgstr "Schüler"
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4758,7 +4776,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4769,7 +4787,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4791,7 +4809,7 @@ msgstr "Zusammenfassung"
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr "Sonntag"
|
msgstr "Sonntag"
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4946,7 +4964,7 @@ msgstr ""
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4954,7 +4972,7 @@ msgstr ""
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4977,7 +4995,7 @@ msgstr "Dieses Zertifikat läuft nicht ab"
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr "Dieser Kurs ist kostenlos."
|
msgstr "Dieser Kurs ist kostenlos."
|
||||||
|
|
||||||
@@ -5083,7 +5101,7 @@ msgstr ""
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5119,7 +5137,7 @@ msgstr "An"
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr "Bis-Datum"
|
msgstr "Bis-Datum"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr "Um dieser Gruppe beizutreten, wenden Sie sich bitte an den Administrator."
|
msgstr "Um dieser Gruppe beizutreten, wenden Sie sich bitte an den Administrator."
|
||||||
|
|
||||||
@@ -5136,7 +5154,7 @@ msgid "Total"
|
|||||||
msgstr "Summe"
|
msgstr "Summe"
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -5537,11 +5555,11 @@ msgstr ""
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
100
lms/locale/eo.po
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-09 23:31\n"
|
"PO-Revision-Date: 2024-12-31 03:29\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: Esperanto\n"
|
"Language-Team: Esperanto\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -101,7 +101,7 @@ msgstr "crwdns149210:0crwdne149210:0"
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -143,6 +143,10 @@ msgstr "crwdns151726:0crwdne151726:0"
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr "crwdns149226:0crwdne149226:0"
|
msgstr "crwdns149226:0crwdne149226:0"
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr "crwdns152004:0crwdne152004:0"
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr "crwdns151728:0crwdne151728:0"
|
msgstr "crwdns151728:0crwdne151728:0"
|
||||||
@@ -349,6 +353,7 @@ msgstr "crwdns149298:0crwdne149298:0"
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr "crwdns149300:0crwdne149300:0"
|
msgstr "crwdns149300:0crwdne149300:0"
|
||||||
@@ -374,6 +379,8 @@ msgstr "crwdns149308:0{0}crwdne149308:0"
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -961,6 +968,7 @@ msgid "Company Website"
|
|||||||
msgstr "crwdns149514:0crwdne149514:0"
|
msgstr "crwdns149514:0crwdne149514:0"
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -978,6 +986,10 @@ msgstr "crwdns149518:0crwdne149518:0"
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr "crwdns149520:0crwdne149520:0"
|
msgstr "crwdns149520:0crwdne149520:0"
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr "crwdns152082:0crwdne152082:0"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr "crwdns149522:0crwdne149522:0"
|
msgstr "crwdns149522:0crwdne149522:0"
|
||||||
@@ -1231,7 +1243,7 @@ msgstr "crwdns151734:0crwdne151734:0"
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr "crwdns149592:0crwdne149592:0"
|
msgstr "crwdns149592:0crwdne149592:0"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr "crwdns151586:0crwdne151586:0"
|
msgstr "crwdns151586:0crwdne151586:0"
|
||||||
|
|
||||||
@@ -1249,6 +1261,9 @@ msgstr "crwdns149596:0{0}crwdne149596:0"
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1406,7 +1421,7 @@ msgstr "crwdns149644:0crwdne149644:0"
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "crwdns149646:0crwdne149646:0"
|
msgstr "crwdns149646:0crwdne149646:0"
|
||||||
|
|
||||||
@@ -1414,7 +1429,7 @@ msgstr "crwdns149646:0crwdne149646:0"
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr "crwdns151626:0crwdne151626:0"
|
msgstr "crwdns151626:0crwdne151626:0"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr "crwdns151588:0crwdne151588:0"
|
msgstr "crwdns151588:0crwdne151588:0"
|
||||||
|
|
||||||
@@ -1426,7 +1441,7 @@ msgstr "crwdns151628:0crwdne151628:0"
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr "crwdns151630:0crwdne151630:0"
|
msgstr "crwdns151630:0crwdne151630:0"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr "crwdns151590:0crwdne151590:0"
|
msgstr "crwdns151590:0crwdne151590:0"
|
||||||
|
|
||||||
@@ -1702,7 +1717,7 @@ msgstr "crwdns149728:0crwdne149728:0"
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr "crwdns149730:0crwdne149730:0"
|
msgstr "crwdns149730:0crwdne149730:0"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr "crwdns149732:0crwdne149732:0"
|
msgstr "crwdns149732:0crwdne149732:0"
|
||||||
|
|
||||||
@@ -1738,6 +1753,7 @@ msgstr "crwdns149742:0crwdne149742:0"
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2467,10 +2483,6 @@ msgstr "crwdns149998:0crwdne149998:0"
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr "crwdns150000:0crwdne150000:0"
|
msgstr "crwdns150000:0crwdne150000:0"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr "crwdns151476:0crwdne151476:0"
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2792,7 +2804,7 @@ msgstr "crwdns150100:0crwdne150100:0"
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr "crwdns150102:0crwdne150102:0"
|
msgstr "crwdns150102:0crwdne150102:0"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr "crwdns150104:0crwdne150104:0"
|
msgstr "crwdns150104:0crwdne150104:0"
|
||||||
|
|
||||||
@@ -2812,7 +2824,9 @@ msgstr "crwdns150108:0crwdne150108:0"
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr "crwdns150110:0crwdne150110:0"
|
msgstr "crwdns150110:0crwdne150110:0"
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr "crwdns150112:0crwdne150112:0"
|
msgstr "crwdns150112:0crwdne150112:0"
|
||||||
|
|
||||||
@@ -2907,7 +2921,7 @@ msgstr "crwdns150142:0crwdne150142:0"
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr "crwdns150144:0crwdne150144:0"
|
msgstr "crwdns150144:0crwdne150144:0"
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr "crwdns150146:0{0}crwdne150146:0"
|
msgstr "crwdns150146:0{0}crwdne150146:0"
|
||||||
|
|
||||||
@@ -2957,7 +2971,7 @@ msgstr "crwdns150158:0crwdne150158:0"
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3230,7 +3244,7 @@ msgstr "crwdns150238:0crwdne150238:0"
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr "crwdns150240:0crwdne150240:0"
|
msgstr "crwdns150240:0crwdne150240:0"
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr "crwdns150242:0crwdne150242:0"
|
msgstr "crwdns150242:0crwdne150242:0"
|
||||||
|
|
||||||
@@ -3291,7 +3305,7 @@ msgstr "crwdns150262:0crwdne150262:0"
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr "crwdns151768:0crwdne151768:0"
|
msgstr "crwdns151768:0crwdne151768:0"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr "crwdns151592:0crwdne151592:0"
|
msgstr "crwdns151592:0crwdne151592:0"
|
||||||
|
|
||||||
@@ -3407,7 +3421,7 @@ msgstr "crwdns151770:0crwdne151770:0"
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr "crwdns150308:0{0}crwdne150308:0"
|
msgstr "crwdns150308:0{0}crwdne150308:0"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr "crwdns150310:0crwdne150310:0"
|
msgstr "crwdns150310:0crwdne150310:0"
|
||||||
|
|
||||||
@@ -3558,7 +3572,7 @@ msgstr "crwdns150362:0crwdne150362:0"
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3653,7 +3667,7 @@ msgstr "crwdns150390:0crwdne150390:0"
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr "crwdns150392:0crwdne150392:0"
|
msgstr "crwdns150392:0crwdne150392:0"
|
||||||
@@ -3687,7 +3701,7 @@ msgstr "crwdns150404:0crwdne150404:0"
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr "crwdns150406:0crwdne150406:0"
|
msgstr "crwdns150406:0crwdne150406:0"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr "crwdns151772:0crwdne151772:0"
|
msgstr "crwdns151772:0crwdne151772:0"
|
||||||
|
|
||||||
@@ -3936,6 +3950,9 @@ msgstr "crwdns151794:0crwdne151794:0"
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4040,8 +4057,7 @@ msgstr "crwdns150520:0crwdne150520:0"
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4059,7 +4075,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr "crwdns150526:0crwdne150526:0"
|
msgstr "crwdns150526:0crwdne150526:0"
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr "crwdns150528:0crwdne150528:0"
|
msgstr "crwdns150528:0crwdne150528:0"
|
||||||
|
|
||||||
@@ -4089,8 +4105,8 @@ msgstr "crwdns150538:0crwdne150538:0"
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr "crwdns150540:0crwdne150540:0"
|
msgstr "crwdns150540:0crwdne150540:0"
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr "crwdns150542:0crwdne150542:0"
|
msgstr "crwdns150542:0crwdne150542:0"
|
||||||
|
|
||||||
@@ -4328,7 +4344,7 @@ msgstr "crwdns150620:0crwdne150620:0"
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4629,6 +4645,7 @@ msgstr "crwdns150730:0crwdne150730:0"
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4700,13 +4717,14 @@ msgstr "crwdns150746:0{0}crwdne150746:0"
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr "crwdns150748:0crwdne150748:0"
|
msgstr "crwdns150748:0crwdne150748:0"
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr "crwdns150750:0crwdne150750:0"
|
msgstr "crwdns150750:0crwdne150750:0"
|
||||||
|
|
||||||
@@ -4758,7 +4776,7 @@ msgstr "crwdns150766:0{0}crwdne150766:0"
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4769,7 +4787,7 @@ msgstr "crwdns150766:0{0}crwdne150766:0"
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4791,7 +4809,7 @@ msgstr "crwdns150770:0crwdne150770:0"
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr "crwdns150772:0crwdne150772:0"
|
msgstr "crwdns150772:0crwdne150772:0"
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr "crwdns151930:0{0}crwdnd151930:0{1}crwdne151930:0"
|
msgstr "crwdns151930:0{0}crwdnd151930:0{1}crwdne151930:0"
|
||||||
|
|
||||||
@@ -4946,7 +4964,7 @@ msgstr "crwdns151798:0crwdne151798:0"
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr "crwdns150808:0crwdne150808:0"
|
msgstr "crwdns150808:0crwdne150808:0"
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr "crwdns150810:0crwdne150810:0"
|
msgstr "crwdns150810:0crwdne150810:0"
|
||||||
|
|
||||||
@@ -4954,7 +4972,7 @@ msgstr "crwdns150810:0crwdne150810:0"
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr "crwdns150812:0{0}crwdne150812:0"
|
msgstr "crwdns150812:0{0}crwdne150812:0"
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr "crwdns151850:0{0}crwdnd151850:0{1}crwdne151850:0"
|
msgstr "crwdns151850:0{0}crwdnd151850:0{1}crwdne151850:0"
|
||||||
|
|
||||||
@@ -4977,7 +4995,7 @@ msgstr "crwdns150818:0crwdne150818:0"
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr "crwdns150820:0crwdne150820:0"
|
msgstr "crwdns150820:0crwdne150820:0"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr "crwdns150822:0crwdne150822:0"
|
msgstr "crwdns150822:0crwdne150822:0"
|
||||||
|
|
||||||
@@ -5083,7 +5101,7 @@ msgstr "crwdns150848:0crwdne150848:0"
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5119,7 +5137,7 @@ msgstr "crwdns150852:0crwdne150852:0"
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr "crwdns150854:0crwdne150854:0"
|
msgstr "crwdns150854:0crwdne150854:0"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr "crwdns150858:0crwdne150858:0"
|
msgstr "crwdns150858:0crwdne150858:0"
|
||||||
|
|
||||||
@@ -5136,7 +5154,7 @@ msgid "Total"
|
|||||||
msgstr "crwdns150864:0crwdne150864:0"
|
msgstr "crwdns150864:0crwdne150864:0"
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr "crwdns150866:0crwdne150866:0"
|
msgstr "crwdns150866:0crwdne150866:0"
|
||||||
@@ -5537,11 +5555,11 @@ msgstr "crwdns151014:0crwdne151014:0"
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr "crwdns151016:0crwdne151016:0"
|
msgstr "crwdns151016:0crwdne151016:0"
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr "crwdns151852:0{0}crwdnd151852:0{1}crwdne151852:0"
|
msgstr "crwdns151852:0{0}crwdnd151852:0{1}crwdne151852:0"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr "crwdns151594:0crwdne151594:0"
|
msgstr "crwdns151594:0crwdne151594:0"
|
||||||
|
|
||||||
|
|||||||
100
lms/locale/es.po
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-09 23:30\n"
|
"PO-Revision-Date: 2024-12-31 03:29\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: Spanish\n"
|
"Language-Team: Spanish\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -101,7 +101,7 @@ msgstr "Activo"
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -143,6 +143,10 @@ msgstr ""
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr "Añadir un curso"
|
msgstr "Añadir un curso"
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -349,6 +353,7 @@ msgstr "Preguntar categoría de usuario durante el registro"
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr "Evaluación"
|
msgstr "Evaluación"
|
||||||
@@ -374,6 +379,8 @@ msgstr "La evaluación {0} ya se ha agregado a este lote."
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -961,6 +968,7 @@ msgid "Company Website"
|
|||||||
msgstr "Página Web de la empresa"
|
msgstr "Página Web de la empresa"
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -978,6 +986,10 @@ msgstr "Completar registro"
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr "Completado"
|
msgstr "Completado"
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr "Certificado de finalización"
|
msgstr "Certificado de finalización"
|
||||||
@@ -1231,7 +1243,7 @@ msgstr ""
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr "Curso ya agregado al lote."
|
msgstr "Curso ya agregado al lote."
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1249,6 +1261,9 @@ msgstr "El curso {0} ya se ha agregado a este lote."
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1406,7 +1421,7 @@ msgstr "Tipo de Grado"
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Eliminar"
|
msgstr "Eliminar"
|
||||||
|
|
||||||
@@ -1414,7 +1429,7 @@ msgstr "Eliminar"
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1426,7 +1441,7 @@ msgstr ""
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1702,7 +1717,7 @@ msgstr "Confirmación de inscripción para el próximo Lote de Entrenamiento"
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr "Recuento de inscripciones"
|
msgstr "Recuento de inscripciones"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr "Error al inscribirse"
|
msgstr "Error al inscribirse"
|
||||||
|
|
||||||
@@ -1738,6 +1753,7 @@ msgstr "Ingrese la respuesta correcta"
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2467,10 +2483,6 @@ msgstr "Unirse a la reunión"
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr "Unirse a URL"
|
msgstr "Unirse a URL"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr "Palabras claves del curso"
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2792,7 +2804,7 @@ msgstr "ID de LinkedIn"
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr "Enlaces"
|
msgstr "Enlaces"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr "Lista de cuestionarios"
|
msgstr "Lista de cuestionarios"
|
||||||
|
|
||||||
@@ -2812,7 +2824,9 @@ msgstr "Clase en vivo"
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr "URL LiveCode"
|
msgstr "URL LiveCode"
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr "Carga más"
|
msgstr "Carga más"
|
||||||
|
|
||||||
@@ -2907,7 +2921,7 @@ msgstr "Marcar como leído"
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr "Marcas"
|
msgstr "Marcas"
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr "Las calificaciones para la pregunta número {0} no pueden ser mayores que las calificaciones asignadas para esa pregunta."
|
msgstr "Las calificaciones para la pregunta número {0} no pueden ser mayores que las calificaciones asignadas para esa pregunta."
|
||||||
|
|
||||||
@@ -2957,7 +2971,7 @@ msgstr "Medio:"
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3230,7 +3244,7 @@ msgstr "Siguiente"
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr "Siguiente pregunta"
|
msgstr "Siguiente pregunta"
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr "Sin evaluaciones"
|
msgstr "Sin evaluaciones"
|
||||||
|
|
||||||
@@ -3291,7 +3305,7 @@ msgstr "No hay clases en vivo programadas"
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3407,7 +3421,7 @@ msgstr ""
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr "Sólo se aceptarán archivos del tipo {0}."
|
msgstr "Sólo se aceptarán archivos del tipo {0}."
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr "Sólo se permiten archivos de imagen."
|
msgstr "Sólo se permiten archivos de imagen."
|
||||||
|
|
||||||
@@ -3558,7 +3572,7 @@ msgstr "Aprobar"
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3653,7 +3667,7 @@ msgstr "Pendiente"
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr "Porcentaje"
|
msgstr "Porcentaje"
|
||||||
@@ -3687,7 +3701,7 @@ msgstr "Por favor, consultar su correo electrónico para la verificación"
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr "Haga clic en el siguiente botón para establecer su nueva contraseña"
|
msgstr "Haga clic en el siguiente botón para establecer su nueva contraseña"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3936,6 +3950,9 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4040,8 +4057,7 @@ msgstr "Preguntas eliminadas correctamente"
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4059,7 +4075,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr "Envíos de cuestionarios"
|
msgstr "Envíos de cuestionarios"
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr "Envíos de cuestionarios"
|
msgstr "Envíos de cuestionarios"
|
||||||
|
|
||||||
@@ -4089,8 +4105,8 @@ msgstr "Cuestionario actualizado correctamente"
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr "El cuestionario aparecerá al final de la lección."
|
msgstr "El cuestionario aparecerá al final de la lección."
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr "Cuestionarios"
|
msgstr "Cuestionarios"
|
||||||
|
|
||||||
@@ -4328,7 +4344,7 @@ msgstr "Alcance"
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4629,6 +4645,7 @@ msgstr "Estado"
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4700,13 +4717,14 @@ msgstr "El estudiante {0} ya ha sido añadido a este lote."
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr "Estudiantes"
|
msgstr "Estudiantes"
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr "Estudiantes eliminados correctamente"
|
msgstr "Estudiantes eliminados correctamente"
|
||||||
|
|
||||||
@@ -4758,7 +4776,7 @@ msgstr "Enviado {0}"
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4769,7 +4787,7 @@ msgstr "Enviado {0}"
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4791,7 +4809,7 @@ msgstr "Resumen"
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr "Domingo"
|
msgstr "Domingo"
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4946,7 +4964,7 @@ msgstr ""
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr "No hay asientos disponibles en este lote."
|
msgstr "No hay asientos disponibles en este lote."
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr "No hay estudiantes en este lote."
|
msgstr "No hay estudiantes en este lote."
|
||||||
|
|
||||||
@@ -4954,7 +4972,7 @@ msgstr "No hay estudiantes en este lote."
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr "No hay {0} en este sitio."
|
msgstr "No hay {0} en este sitio."
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4977,7 +4995,7 @@ msgstr "Este certificado no caduca"
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr "Este curso tiene:"
|
msgstr "Este curso tiene:"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr "Este curso es gratuito."
|
msgstr "Este curso es gratuito."
|
||||||
|
|
||||||
@@ -5083,7 +5101,7 @@ msgstr "Horarios:"
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5119,7 +5137,7 @@ msgstr "A"
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr "Hasta la fecha"
|
msgstr "Hasta la fecha"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr "Para unirse a este lote, comuníquese con el Administrador."
|
msgstr "Para unirse a este lote, comuníquese con el Administrador."
|
||||||
|
|
||||||
@@ -5136,7 +5154,7 @@ msgid "Total"
|
|||||||
msgstr "Total"
|
msgstr "Total"
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr "Marcas totales"
|
msgstr "Marcas totales"
|
||||||
@@ -5537,11 +5555,11 @@ msgstr "Te has inscrito en este grupo"
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr "Te has inscrito en este curso"
|
msgstr "Te has inscrito en este curso"
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
108
lms/locale/fa.po
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-09 23:31\n"
|
"PO-Revision-Date: 2025-01-01 03:30\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: Persian\n"
|
"Language-Team: Persian\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -101,7 +101,7 @@ msgstr "فعال"
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -143,6 +143,10 @@ msgstr ""
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr "دوره را اضافه کنید"
|
msgstr "دوره را اضافه کنید"
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr "یک کلمه کلیدی اضافه کنید و سپس اینتر را فشار دهید"
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -349,6 +353,7 @@ msgstr "هنگام ثبت نام از نوع کاربری بپرسید"
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr "ارزیابی"
|
msgstr "ارزیابی"
|
||||||
@@ -374,6 +379,8 @@ msgstr "ارزیابی {0} قبلاً به این دسته اضافه شده ا
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -961,6 +968,7 @@ msgid "Company Website"
|
|||||||
msgstr "وب سایت شرکت"
|
msgstr "وب سایت شرکت"
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -978,6 +986,10 @@ msgstr ""
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr "تکمیل شد"
|
msgstr "تکمیل شد"
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1231,7 +1243,7 @@ msgstr ""
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr "دوره قبلاً به دسته اضافه شده است."
|
msgstr "دوره قبلاً به دسته اضافه شده است."
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr "دوره با موفقیت حذف شد"
|
msgstr "دوره با موفقیت حذف شد"
|
||||||
|
|
||||||
@@ -1249,6 +1261,9 @@ msgstr "دوره {0} قبلاً به این دسته اضافه شده است."
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1406,7 +1421,7 @@ msgstr "نوع مدرک"
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "حذف"
|
msgstr "حذف"
|
||||||
|
|
||||||
@@ -1414,7 +1429,7 @@ msgstr "حذف"
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr "حذف فصل"
|
msgstr "حذف فصل"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr "حذف دوره"
|
msgstr "حذف دوره"
|
||||||
|
|
||||||
@@ -1426,7 +1441,7 @@ msgstr "این فصل حذف شود؟"
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr "این درس حذف شود؟"
|
msgstr "این درس حذف شود؟"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1702,7 +1717,7 @@ msgstr ""
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1738,6 +1753,7 @@ msgstr "پاسخ صحیح را وارد کنید"
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2401,7 +2417,7 @@ msgstr "موارد موجود در نوار کناری"
|
|||||||
|
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
msgid "Items removed successfully"
|
msgid "Items removed successfully"
|
||||||
msgstr ""
|
msgstr "آیتمها با موفقیت حذف شدند"
|
||||||
|
|
||||||
#: lms/templates/signup-form.html:6
|
#: lms/templates/signup-form.html:6
|
||||||
msgid "Jane Doe"
|
msgid "Jane Doe"
|
||||||
@@ -2467,10 +2483,6 @@ msgstr ""
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2792,7 +2804,7 @@ msgstr ""
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr "پیوندها"
|
msgstr "پیوندها"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2812,7 +2824,9 @@ msgstr "کلاس زنده"
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr "بارگذاری بیشتر"
|
msgstr "بارگذاری بیشتر"
|
||||||
|
|
||||||
@@ -2907,7 +2921,7 @@ msgstr "علامتگذاری به عنوان خوانده شد"
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr "نمرات"
|
msgstr "نمرات"
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2957,7 +2971,7 @@ msgstr "متوسط:"
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3230,7 +3244,7 @@ msgstr "بعد"
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr "سؤال بعدی"
|
msgstr "سؤال بعدی"
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3265,7 +3279,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/pages/Courses.vue:147
|
#: frontend/src/pages/Courses.vue:147
|
||||||
msgid "No courses found"
|
msgid "No courses found"
|
||||||
msgstr ""
|
msgstr "هیچ دوره ای پیدا نشد"
|
||||||
|
|
||||||
#: frontend/src/pages/Programs.vue:83
|
#: frontend/src/pages/Programs.vue:83
|
||||||
msgid "No courses in this program"
|
msgid "No courses in this program"
|
||||||
@@ -3291,7 +3305,7 @@ msgstr ""
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3407,7 +3421,7 @@ msgstr ""
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr "فقط فایل هایی از نوع {0} پذیرفته می شوند."
|
msgstr "فقط فایل هایی از نوع {0} پذیرفته می شوند."
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3558,7 +3572,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3653,7 +3667,7 @@ msgstr "انتظار"
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr "درصد"
|
msgstr "درصد"
|
||||||
@@ -3687,7 +3701,7 @@ msgstr "لطفا ایمیل خود را برای تایید بررسی کنید"
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3767,11 +3781,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Modals/LiveClassModal.vue:170
|
#: frontend/src/components/Modals/LiveClassModal.vue:170
|
||||||
msgid "Please select a time."
|
msgid "Please select a time."
|
||||||
msgstr ""
|
msgstr "لطفا زمانی را انتخاب کنید."
|
||||||
|
|
||||||
#: frontend/src/components/Modals/LiveClassModal.vue:173
|
#: frontend/src/components/Modals/LiveClassModal.vue:173
|
||||||
msgid "Please select a timezone."
|
msgid "Please select a timezone."
|
||||||
msgstr ""
|
msgstr "لطفاً یک منطقه زمانی انتخاب کنید."
|
||||||
|
|
||||||
#: lms/templates/emails/job_report.html:6
|
#: lms/templates/emails/job_report.html:6
|
||||||
msgid "Please take appropriate action at {0}"
|
msgid "Please take appropriate action at {0}"
|
||||||
@@ -3936,6 +3950,9 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4040,8 +4057,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4059,7 +4075,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4089,8 +4105,8 @@ msgstr ""
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr "تکلیف زیر درس نشان داده می شود."
|
msgstr "تکلیف زیر درس نشان داده می شود."
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4328,7 +4344,7 @@ msgstr "محدوده"
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4629,6 +4645,7 @@ msgstr "حالت"
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4700,13 +4717,14 @@ msgstr "دانشآموز {0} قبلاً به این دسته اضافه شد
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr "دانشآموزان"
|
msgstr "دانشآموزان"
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4758,7 +4776,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4769,7 +4787,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4791,7 +4809,7 @@ msgstr "خلاصه"
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr "یکشنبه"
|
msgstr "یکشنبه"
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4946,7 +4964,7 @@ msgstr ""
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr "هیچ دانشآموزی در این گروه وجود ندارد."
|
msgstr "هیچ دانشآموزی در این گروه وجود ندارد."
|
||||||
|
|
||||||
@@ -4954,7 +4972,7 @@ msgstr "هیچ دانشآموزی در این گروه وجود ندارد."
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr "هیچ {0} در این سایت وجود ندارد."
|
msgstr "هیچ {0} در این سایت وجود ندارد."
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4977,7 +4995,7 @@ msgstr ""
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5083,7 +5101,7 @@ msgstr ""
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5119,7 +5137,7 @@ msgstr "به"
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr "تا تاریخ"
|
msgstr "تا تاریخ"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5136,7 +5154,7 @@ msgid "Total"
|
|||||||
msgstr "جمع"
|
msgstr "جمع"
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -5537,11 +5555,11 @@ msgstr ""
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
100
lms/locale/fr.po
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-09 23:30\n"
|
"PO-Revision-Date: 2024-12-31 03:29\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: French\n"
|
"Language-Team: French\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -101,7 +101,7 @@ msgstr "actif"
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -143,6 +143,10 @@ msgstr ""
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr "Ajouter un cours"
|
msgstr "Ajouter un cours"
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -349,6 +353,7 @@ msgstr "Demandez la catégorie de l'utilisateur lors de l'inscription"
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr "Évaluation"
|
msgstr "Évaluation"
|
||||||
@@ -374,6 +379,8 @@ msgstr "L'évaluation {0} a déjà été ajoutée à ce lot."
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -961,6 +968,7 @@ msgid "Company Website"
|
|||||||
msgstr "Site Web de l'entreprise"
|
msgstr "Site Web de l'entreprise"
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -978,6 +986,10 @@ msgstr "Terminer l'inscription"
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr "Terminé"
|
msgstr "Terminé"
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1231,7 +1243,7 @@ msgstr ""
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr "Cours déjà ajouté au lot."
|
msgstr "Cours déjà ajouté au lot."
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1249,6 +1261,9 @@ msgstr "Le cours {0} a déjà été ajouté à ce lot."
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1406,7 +1421,7 @@ msgstr "Type de diplôme"
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Supprimer"
|
msgstr "Supprimer"
|
||||||
|
|
||||||
@@ -1414,7 +1429,7 @@ msgstr "Supprimer"
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1426,7 +1441,7 @@ msgstr ""
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1702,7 +1717,7 @@ msgstr ""
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1738,6 +1753,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2467,10 +2483,6 @@ msgstr ""
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2792,7 +2804,7 @@ msgstr ""
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr "Liens"
|
msgstr "Liens"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2812,7 +2824,9 @@ msgstr ""
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr "Charger plus"
|
msgstr "Charger plus"
|
||||||
|
|
||||||
@@ -2907,7 +2921,7 @@ msgstr ""
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2957,7 +2971,7 @@ msgstr "Moyen:"
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3230,7 +3244,7 @@ msgstr "Suivant"
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3291,7 +3305,7 @@ msgstr ""
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3407,7 +3421,7 @@ msgstr ""
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3558,7 +3572,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3653,7 +3667,7 @@ msgstr "En Attente"
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr "Pourcentage"
|
msgstr "Pourcentage"
|
||||||
@@ -3687,7 +3701,7 @@ msgstr "Veuillez vérifier votre email pour validation"
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3936,6 +3950,9 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4040,8 +4057,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4059,7 +4075,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4089,8 +4105,8 @@ msgstr ""
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4328,7 +4344,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4629,6 +4645,7 @@ msgstr "Etat"
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4700,13 +4717,14 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4758,7 +4776,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4769,7 +4787,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4791,7 +4809,7 @@ msgstr "Résumé"
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr "Dimanche"
|
msgstr "Dimanche"
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4946,7 +4964,7 @@ msgstr ""
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4954,7 +4972,7 @@ msgstr ""
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4977,7 +4995,7 @@ msgstr ""
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5083,7 +5101,7 @@ msgstr ""
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5119,7 +5137,7 @@ msgstr "À"
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr "Jusqu'au"
|
msgstr "Jusqu'au"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5136,7 +5154,7 @@ msgid "Total"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -5537,11 +5555,11 @@ msgstr ""
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
100
lms/locale/hu.po
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-09 23:31\n"
|
"PO-Revision-Date: 2024-12-31 03:29\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: Hungarian\n"
|
"Language-Team: Hungarian\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -101,7 +101,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -143,6 +143,10 @@ msgstr ""
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -349,6 +353,7 @@ msgstr ""
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -374,6 +379,8 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -961,6 +968,7 @@ msgid "Company Website"
|
|||||||
msgstr "Cég honlapja"
|
msgstr "Cég honlapja"
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -978,6 +986,10 @@ msgstr ""
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1231,7 +1243,7 @@ msgstr ""
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1249,6 +1261,9 @@ msgstr ""
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1406,7 +1421,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1414,7 +1429,7 @@ msgstr ""
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1426,7 +1441,7 @@ msgstr ""
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1702,7 +1717,7 @@ msgstr ""
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1738,6 +1753,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2467,10 +2483,6 @@ msgstr ""
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2792,7 +2804,7 @@ msgstr ""
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr "Összekapcsolások"
|
msgstr "Összekapcsolások"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2812,7 +2824,9 @@ msgstr ""
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr "Töltsön be többet"
|
msgstr "Töltsön be többet"
|
||||||
|
|
||||||
@@ -2907,7 +2921,7 @@ msgstr ""
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2957,7 +2971,7 @@ msgstr "Közepes:"
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3230,7 +3244,7 @@ msgstr ""
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3291,7 +3305,7 @@ msgstr ""
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3407,7 +3421,7 @@ msgstr ""
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3558,7 +3572,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3653,7 +3667,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -3687,7 +3701,7 @@ msgstr "Kérjük, ellenőrizze e-mail a vizsgálathoz"
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3936,6 +3950,9 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4040,8 +4057,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4059,7 +4075,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4089,8 +4105,8 @@ msgstr ""
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4328,7 +4344,7 @@ msgstr "terület"
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4629,6 +4645,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4700,13 +4717,14 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4758,7 +4776,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4769,7 +4787,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4791,7 +4809,7 @@ msgstr "Összefoglalás"
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr "Vasárnap"
|
msgstr "Vasárnap"
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4946,7 +4964,7 @@ msgstr ""
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4954,7 +4972,7 @@ msgstr ""
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4977,7 +4995,7 @@ msgstr ""
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5083,7 +5101,7 @@ msgstr ""
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5119,7 +5137,7 @@ msgstr ""
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5136,7 +5154,7 @@ msgid "Total"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -5537,11 +5555,11 @@ msgstr ""
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Frappe LMS VERSION\n"
|
"Project-Id-Version: Frappe LMS VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-06 16:04+0000\n"
|
"PO-Revision-Date: 2024-12-27 16:04+0000\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: jannat@frappe.io\n"
|
"Language-Team: jannat@frappe.io\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -99,7 +99,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -141,6 +141,10 @@ msgstr ""
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -347,6 +351,7 @@ msgstr ""
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -372,6 +377,8 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -959,6 +966,7 @@ msgid "Company Website"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -976,6 +984,10 @@ msgstr ""
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1229,7 +1241,7 @@ msgstr ""
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1247,6 +1259,9 @@ msgstr ""
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1404,7 +1419,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1412,7 +1427,7 @@ msgstr ""
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1424,7 +1439,7 @@ msgstr ""
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1700,7 +1715,7 @@ msgstr ""
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1736,6 +1751,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2465,10 +2481,6 @@ msgstr ""
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2790,7 +2802,7 @@ msgstr ""
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2810,7 +2822,9 @@ msgstr ""
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2905,7 +2919,7 @@ msgstr ""
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2955,7 +2969,7 @@ msgstr ""
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3228,7 +3242,7 @@ msgstr ""
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3289,7 +3303,7 @@ msgstr ""
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3405,7 +3419,7 @@ msgstr ""
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3556,7 +3570,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3651,7 +3665,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -3685,7 +3699,7 @@ msgstr ""
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3934,6 +3948,9 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4038,8 +4055,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4057,7 +4073,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4087,8 +4103,8 @@ msgstr ""
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4326,7 +4342,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4627,6 +4643,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4698,13 +4715,14 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4756,7 +4774,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4767,7 +4785,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4789,7 +4807,7 @@ msgstr ""
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4944,7 +4962,7 @@ msgstr ""
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4952,7 +4970,7 @@ msgstr ""
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4975,7 +4993,7 @@ msgstr ""
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5081,7 +5099,7 @@ msgstr ""
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5117,7 +5135,7 @@ msgstr ""
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5134,7 +5152,7 @@ msgid "Total"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -5535,11 +5553,11 @@ msgstr ""
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
100
lms/locale/pl.po
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-09 23:31\n"
|
"PO-Revision-Date: 2024-12-31 03:29\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: Polish\n"
|
"Language-Team: Polish\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -101,7 +101,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -143,6 +143,10 @@ msgstr ""
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -349,6 +353,7 @@ msgstr ""
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -374,6 +379,8 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -961,6 +968,7 @@ msgid "Company Website"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -978,6 +986,10 @@ msgstr ""
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1231,7 +1243,7 @@ msgstr ""
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1249,6 +1261,9 @@ msgstr ""
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1406,7 +1421,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1414,7 +1429,7 @@ msgstr ""
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1426,7 +1441,7 @@ msgstr ""
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1702,7 +1717,7 @@ msgstr ""
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1738,6 +1753,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2467,10 +2483,6 @@ msgstr ""
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2792,7 +2804,7 @@ msgstr ""
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2812,7 +2824,9 @@ msgstr ""
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2907,7 +2921,7 @@ msgstr ""
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2957,7 +2971,7 @@ msgstr "Średni:"
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3230,7 +3244,7 @@ msgstr ""
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3291,7 +3305,7 @@ msgstr ""
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3407,7 +3421,7 @@ msgstr ""
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3558,7 +3572,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3653,7 +3667,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -3687,7 +3701,7 @@ msgstr ""
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3936,6 +3950,9 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4040,8 +4057,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4059,7 +4075,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4089,8 +4105,8 @@ msgstr ""
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4328,7 +4344,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4629,6 +4645,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4700,13 +4717,14 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4758,7 +4776,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4769,7 +4787,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4791,7 +4809,7 @@ msgstr "Podsumowanie"
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4946,7 +4964,7 @@ msgstr ""
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4954,7 +4972,7 @@ msgstr ""
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4977,7 +4995,7 @@ msgstr ""
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5083,7 +5101,7 @@ msgstr ""
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5119,7 +5137,7 @@ msgstr ""
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5136,7 +5154,7 @@ msgid "Total"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -5537,11 +5555,11 @@ msgstr ""
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
100
lms/locale/ru.po
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-09 23:31\n"
|
"PO-Revision-Date: 2024-12-31 03:29\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: Russian\n"
|
"Language-Team: Russian\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -101,7 +101,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -143,6 +143,10 @@ msgstr ""
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr "Добавить курс"
|
msgstr "Добавить курс"
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -349,6 +353,7 @@ msgstr "Спрашивать категорию пользователя при
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr "Оценка"
|
msgstr "Оценка"
|
||||||
@@ -374,6 +379,8 @@ msgstr "Оценка {0} уже добавлена в этот пакет."
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -961,6 +968,7 @@ msgid "Company Website"
|
|||||||
msgstr "Вебсайт Компании"
|
msgstr "Вебсайт Компании"
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -978,6 +986,10 @@ msgstr "Завершить регистрацию"
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1231,7 +1243,7 @@ msgstr ""
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr "Курс уже добавлен в группу."
|
msgstr "Курс уже добавлен в группу."
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1249,6 +1261,9 @@ msgstr "Курс {0} уже добавлен в группу."
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1406,7 +1421,7 @@ msgstr "Тип степени"
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1414,7 +1429,7 @@ msgstr ""
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1426,7 +1441,7 @@ msgstr ""
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1702,7 +1717,7 @@ msgstr "Подтверждение регистрации на следующу
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr "Количество регистраций"
|
msgstr "Количество регистраций"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1738,6 +1753,7 @@ msgstr "Введите правильный ответ"
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2467,10 +2483,6 @@ msgstr ""
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr "Присоединиться URL"
|
msgstr "Присоединиться URL"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2792,7 +2804,7 @@ msgstr ""
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr "Ссылки"
|
msgstr "Ссылки"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2812,7 +2824,9 @@ msgstr "Онлайн-урок"
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2907,7 +2921,7 @@ msgstr "Отметить как прочитанное"
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr "Отметки"
|
msgstr "Отметки"
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2957,7 +2971,7 @@ msgstr "Средний:"
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3230,7 +3244,7 @@ msgstr ""
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr "Следующий вопрос"
|
msgstr "Следующий вопрос"
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr "Нет оценок"
|
msgstr "Нет оценок"
|
||||||
|
|
||||||
@@ -3291,7 +3305,7 @@ msgstr "Не запланированы онлайн-курсы"
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3407,7 +3421,7 @@ msgstr ""
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr "Принимаются только файлы типа {0} ."
|
msgstr "Принимаются только файлы типа {0} ."
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3558,7 +3572,7 @@ msgstr "Пропустить"
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3653,7 +3667,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr "Проценты"
|
msgstr "Проценты"
|
||||||
@@ -3687,7 +3701,7 @@ msgstr "Пожалуйста, проверьте свой email для подт
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr "Нажмите на следующую кнопку, чтобы установить новый пароль."
|
msgstr "Нажмите на следующую кнопку, чтобы установить новый пароль."
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3936,6 +3950,9 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4040,8 +4057,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4059,7 +4075,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr "Подача теста"
|
msgstr "Подача теста"
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4089,8 +4105,8 @@ msgstr ""
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr "Тест появится в конце урока."
|
msgstr "Тест появится в конце урока."
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4328,7 +4344,7 @@ msgstr "Объем"
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4629,6 +4645,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4700,13 +4717,14 @@ msgstr "Курс {0} уже добавлен в группу."
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr "Студенты"
|
msgstr "Студенты"
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4758,7 +4776,7 @@ msgstr "Отправлено {0}"
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4769,7 +4787,7 @@ msgstr "Отправлено {0}"
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4791,7 +4809,7 @@ msgstr "Резюме"
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr "Воскресенье"
|
msgstr "Воскресенье"
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4946,7 +4964,7 @@ msgstr ""
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr "В этой группе нет свободных мест."
|
msgstr "В этой группе нет свободных мест."
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr "В этой группе нет студентов."
|
msgstr "В этой группе нет студентов."
|
||||||
|
|
||||||
@@ -4954,7 +4972,7 @@ msgstr "В этой группе нет студентов."
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr "На этом сайте нет {0} ."
|
msgstr "На этом сайте нет {0} ."
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4977,7 +4995,7 @@ msgstr "Этот сертификат является бессрочным"
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr "Этот курс бесплатный."
|
msgstr "Этот курс бесплатный."
|
||||||
|
|
||||||
@@ -5083,7 +5101,7 @@ msgstr "Сроки:"
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5119,7 +5137,7 @@ msgstr ""
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr "Чтобы присоединиться к этой группе, свяжитесь с администратором."
|
msgstr "Чтобы присоединиться к этой группе, свяжитесь с администратором."
|
||||||
|
|
||||||
@@ -5136,7 +5154,7 @@ msgid "Total"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr "Всего задач"
|
msgstr "Всего задач"
|
||||||
@@ -5537,11 +5555,11 @@ msgstr ""
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
102
lms/locale/sv.po
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-09 23:31\n"
|
"PO-Revision-Date: 2024-12-31 03:29\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: Swedish\n"
|
"Language-Team: Swedish\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -101,7 +101,7 @@ msgstr "Aktiv"
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -143,6 +143,10 @@ msgstr "Lägg till Kapitel"
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr "Lägg till kurs"
|
msgstr "Lägg till kurs"
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr "Lägg till nyckelord och tryck sedan på Enter"
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr "Lägg till Lektion"
|
msgstr "Lägg till Lektion"
|
||||||
@@ -349,6 +353,7 @@ msgstr "Fråga efter Användare Kategori under Registrering"
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr "Bedömning"
|
msgstr "Bedömning"
|
||||||
@@ -374,6 +379,8 @@ msgstr "Bedömning {0} har redan lagts till i denna grupp."
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -961,6 +968,7 @@ msgid "Company Website"
|
|||||||
msgstr "Bolag Webbplats"
|
msgstr "Bolag Webbplats"
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -978,6 +986,10 @@ msgstr "Slutför Registrering"
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr "Klar"
|
msgstr "Klar"
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr "Klart av Studenter"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr "Kompletterande Certifikat"
|
msgstr "Kompletterande Certifikat"
|
||||||
@@ -1134,7 +1146,7 @@ msgstr "Kurs Kapitel"
|
|||||||
#. Label of a shortcut in the LMS Workspace
|
#. Label of a shortcut in the LMS Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Course Completed"
|
msgid "Course Completed"
|
||||||
msgstr "Klara Kurs"
|
msgstr "Klara Kurser"
|
||||||
|
|
||||||
#: lms/lms/widgets/CourseOutline.html:9
|
#: lms/lms/widgets/CourseOutline.html:9
|
||||||
msgid "Course Content"
|
msgid "Course Content"
|
||||||
@@ -1231,7 +1243,7 @@ msgstr "Kurs tillagd till program"
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr "Kurs har redan lagts till grupp."
|
msgstr "Kurs har redan lagts till grupp."
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr "Kurs är borttagen"
|
msgstr "Kurs är borttagen"
|
||||||
|
|
||||||
@@ -1249,6 +1261,9 @@ msgstr "Kurs {0} har redan lagts till i denna omgång."
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1406,7 +1421,7 @@ msgstr "Examen Typ"
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Ta bort"
|
msgstr "Ta bort"
|
||||||
|
|
||||||
@@ -1414,7 +1429,7 @@ msgstr "Ta bort"
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr "Ta bort Kapitel"
|
msgstr "Ta bort Kapitel"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr "Ta bort kurs"
|
msgstr "Ta bort kurs"
|
||||||
|
|
||||||
@@ -1426,7 +1441,7 @@ msgstr "Ta bort detta kapitel?"
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr "Ta bort denna lektion?"
|
msgstr "Ta bort denna lektion?"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr "Om du tar bort kurs raderas också alla dess kapitel och lektioner. Är du säker på att du vill ta bort denna kurs?"
|
msgstr "Om du tar bort kurs raderas också alla dess kapitel och lektioner. Är du säker på att du vill ta bort denna kurs?"
|
||||||
|
|
||||||
@@ -1702,7 +1717,7 @@ msgstr "Inskrivning bekräftelse för nästa grupp utbildning"
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr "Antal Inskrivna"
|
msgstr "Antal Inskrivna"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr "Registrering Misslyckad"
|
msgstr "Registrering Misslyckad"
|
||||||
|
|
||||||
@@ -1738,6 +1753,7 @@ msgstr "Ange korrekt svar"
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2467,10 +2483,6 @@ msgstr "Delta i Möte"
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr "Gå med URL"
|
msgstr "Gå med URL"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr "Nyckelord för kurs"
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2792,7 +2804,7 @@ msgstr "LinkedIn ID"
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr "Länkar"
|
msgstr "Länkar"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr "Lista över frågesporter"
|
msgstr "Lista över frågesporter"
|
||||||
|
|
||||||
@@ -2812,7 +2824,9 @@ msgstr "Live Klass"
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr "LiveCode URL"
|
msgstr "LiveCode URL"
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr "Ladda Mer"
|
msgstr "Ladda Mer"
|
||||||
|
|
||||||
@@ -2907,7 +2921,7 @@ msgstr "Markera som läst"
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr "Märken"
|
msgstr "Märken"
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr "Poängen för fråga nummer {0} får inte vara högre än de poäng som tilldelats för denna fråga."
|
msgstr "Poängen för fråga nummer {0} får inte vara högre än de poäng som tilldelats för denna fråga."
|
||||||
|
|
||||||
@@ -2957,7 +2971,7 @@ msgstr "Medium:"
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3230,7 +3244,7 @@ msgstr "Nästa"
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr "Nästa Fråga"
|
msgstr "Nästa Fråga"
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr "Inga Bedömningar"
|
msgstr "Inga Bedömningar"
|
||||||
|
|
||||||
@@ -3291,7 +3305,7 @@ msgstr "Inga live lektioner schemalagda"
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr "Inga program hittades"
|
msgstr "Inga program hittades"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr "Inga frågesporter hittades"
|
msgstr "Inga frågesporter hittades"
|
||||||
|
|
||||||
@@ -3407,7 +3421,7 @@ msgstr "Endast kurser för vilka självinlärning är inaktiverat kan läggas ti
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr "Endast filer av typ {0} kommer att accepteras."
|
msgstr "Endast filer av typ {0} kommer att accepteras."
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr "Endast bildfiler är tillåtna."
|
msgstr "Endast bildfiler är tillåtna."
|
||||||
|
|
||||||
@@ -3558,7 +3572,7 @@ msgstr "Lösenord"
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3653,7 +3667,7 @@ msgstr "Pågående"
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr "Procentuell"
|
msgstr "Procentuell"
|
||||||
@@ -3687,7 +3701,7 @@ msgstr "Kontrollera din E-post för verifiering"
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr "Klicka på följande knapp för att ange ditt nya lösenord"
|
msgstr "Klicka på följande knapp för att ange ditt nya lösenord"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr "Slutför tidigare kurser i program för att anmäla dig till denna kurs."
|
msgstr "Slutför tidigare kurser i program för att anmäla dig till denna kurs."
|
||||||
|
|
||||||
@@ -3936,6 +3950,9 @@ msgstr "Program Medlemmar"
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4040,8 +4057,7 @@ msgstr "Frågor är borttagna"
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4059,7 +4075,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr "Frågesport Inlämning"
|
msgstr "Frågesport Inlämning"
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr "Frågesport Inlämningar"
|
msgstr "Frågesport Inlämningar"
|
||||||
|
|
||||||
@@ -4089,8 +4105,8 @@ msgstr "Frågesport uppdaterad"
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr "Frågesport kommer att visas längst ner i lektionen."
|
msgstr "Frågesport kommer att visas längst ner i lektionen."
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr "Frågesporter"
|
msgstr "Frågesporter"
|
||||||
|
|
||||||
@@ -4328,7 +4344,7 @@ msgstr "Omfatning"
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4629,6 +4645,7 @@ msgstr "Län"
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4700,13 +4717,14 @@ msgstr "Student {0} har redan lagts till denna grupp."
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr "Studenter"
|
msgstr "Studenter"
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr "Studenter borttagna"
|
msgstr "Studenter borttagna"
|
||||||
|
|
||||||
@@ -4758,7 +4776,7 @@ msgstr "Inskickad {0}"
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4769,7 +4787,7 @@ msgstr "Inskickad {0}"
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4791,7 +4809,7 @@ msgstr "Översikt"
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr "Söndag"
|
msgstr "Söndag"
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr "Misstänkt mönster hittat i {0}: {1}"
|
msgstr "Misstänkt mönster hittat i {0}: {1}"
|
||||||
|
|
||||||
@@ -4946,7 +4964,7 @@ msgstr "Det finns inga program tillgängliga för tillfället. Håll utkik, nya
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr "Det finns inga platser tillgängliga i denna grupp."
|
msgstr "Det finns inga platser tillgängliga i denna grupp."
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr "Det finns inga studenter i denna grupp."
|
msgstr "Det finns inga studenter i denna grupp."
|
||||||
|
|
||||||
@@ -4954,7 +4972,7 @@ msgstr "Det finns inga studenter i denna grupp."
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr "Det finns ingen {0} på denna webbplats."
|
msgstr "Det finns ingen {0} på denna webbplats."
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr "Det har skett uppdatering av din inlämning. Du har fått resultat av {0} för frågesport {1}"
|
msgstr "Det har skett uppdatering av din inlämning. Du har fått resultat av {0} för frågesport {1}"
|
||||||
|
|
||||||
@@ -4977,7 +4995,7 @@ msgstr "Detta certifikat upphör inte att gälla"
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr "Denna kurs har:"
|
msgstr "Denna kurs har:"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr "Denna kurs är gratis."
|
msgstr "Denna kurs är gratis."
|
||||||
|
|
||||||
@@ -5083,7 +5101,7 @@ msgstr "Tidpunkter:"
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5119,7 +5137,7 @@ msgstr "Till"
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr "Till Datum"
|
msgstr "Till Datum"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr "För att gå med i denna grupp, kontakta Administratör."
|
msgstr "För att gå med i denna grupp, kontakta Administratör."
|
||||||
|
|
||||||
@@ -5136,7 +5154,7 @@ msgid "Total"
|
|||||||
msgstr "Totalt"
|
msgstr "Totalt"
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr "Totalt antal markeringar"
|
msgstr "Totalt antal markeringar"
|
||||||
@@ -5537,11 +5555,11 @@ msgstr "Du har blivit registrerad i denna grupp"
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr "Du har blivit registrerad på denna kurs"
|
msgstr "Du har blivit registrerad på denna kurs"
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr "Du har fått resultat av {0} för frågesport {1}"
|
msgstr "Du har fått resultat av {0} för frågesport {1}"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr "Du har inte skapat några frågesporter än. För att skapa ny frågesport, klicka på knapp \"Nytt Frågesport\" ovan."
|
msgstr "Du har inte skapat några frågesporter än. För att skapa ny frågesport, klicka på knapp \"Nytt Frågesport\" ovan."
|
||||||
|
|
||||||
|
|||||||
100
lms/locale/tr.po
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-09 23:31\n"
|
"PO-Revision-Date: 2024-12-31 03:29\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: Turkish\n"
|
"Language-Team: Turkish\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -101,7 +101,7 @@ msgstr "Aktif"
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -143,6 +143,10 @@ msgstr ""
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr "Kurs Ekle"
|
msgstr "Kurs Ekle"
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -349,6 +353,7 @@ msgstr "Kayıt sırasında Kullanıcı Kategorisini Sor"
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr "Değerlendirme"
|
msgstr "Değerlendirme"
|
||||||
@@ -374,6 +379,8 @@ msgstr "Değerlendirme {0} bu gruba zaten eklendi."
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -961,6 +968,7 @@ msgid "Company Website"
|
|||||||
msgstr "Şirket Web Sitesi"
|
msgstr "Şirket Web Sitesi"
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -978,6 +986,10 @@ msgstr "Kayıt İşlemini Tamamlayın"
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr "Tamamlandı"
|
msgstr "Tamamlandı"
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1231,7 +1243,7 @@ msgstr ""
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr "Kurs zaten gruba eklendi."
|
msgstr "Kurs zaten gruba eklendi."
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr "Kurs başarıyla silindi"
|
msgstr "Kurs başarıyla silindi"
|
||||||
|
|
||||||
@@ -1249,6 +1261,9 @@ msgstr "Kurs {0} bu gruba zaten eklenmiştir."
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1406,7 +1421,7 @@ msgstr "Derece Türü"
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Sil"
|
msgstr "Sil"
|
||||||
|
|
||||||
@@ -1414,7 +1429,7 @@ msgstr "Sil"
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr "Kursu Sil"
|
msgstr "Kursu Sil"
|
||||||
|
|
||||||
@@ -1426,7 +1441,7 @@ msgstr ""
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr "Kursu silmek, tüm bölümlerini ve derslerini de silecektir. Bu kursu silmek istediğinizden emin misiniz?"
|
msgstr "Kursu silmek, tüm bölümlerini ve derslerini de silecektir. Bu kursu silmek istediğinizden emin misiniz?"
|
||||||
|
|
||||||
@@ -1702,7 +1717,7 @@ msgstr "Sonraki Eğitim Grubu için Kayıt Onayı"
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr "Kayıt Sayısı"
|
msgstr "Kayıt Sayısı"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr "Kayıt Başarısız"
|
msgstr "Kayıt Başarısız"
|
||||||
|
|
||||||
@@ -1738,6 +1753,7 @@ msgstr "Doğru cevabı girin"
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2467,10 +2483,6 @@ msgstr "Görüşmeye Katıl"
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr "Katılma Bağlantısı"
|
msgstr "Katılma Bağlantısı"
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr "Ders için anahtar kelimeler"
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2792,7 +2804,7 @@ msgstr "LinkedIn"
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr "Bağlantılar"
|
msgstr "Bağlantılar"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr "Sınavların listesi"
|
msgstr "Sınavların listesi"
|
||||||
|
|
||||||
@@ -2812,7 +2824,9 @@ msgstr "Canlı Sınıf"
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr "Daha Fazla Yükle"
|
msgstr "Daha Fazla Yükle"
|
||||||
|
|
||||||
@@ -2907,7 +2921,7 @@ msgstr "Okundu olarak İşaretle"
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2957,7 +2971,7 @@ msgstr "Orta:"
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3230,7 +3244,7 @@ msgstr "Sonraki"
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr "Sonraki Soru"
|
msgstr "Sonraki Soru"
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr "Değerlendirme Yok"
|
msgstr "Değerlendirme Yok"
|
||||||
|
|
||||||
@@ -3291,7 +3305,7 @@ msgstr "Planlanmış canlı ders yok"
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3407,7 +3421,7 @@ msgstr ""
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr "Sadece {0} türündeki dosyalar kabul edilecektir."
|
msgstr "Sadece {0} türündeki dosyalar kabul edilecektir."
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr "Sadece resim dosyasına izin verilir."
|
msgstr "Sadece resim dosyasına izin verilir."
|
||||||
|
|
||||||
@@ -3558,7 +3572,7 @@ msgstr "Başarılı"
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3653,7 +3667,7 @@ msgstr "Bekliyor"
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr "Yüzde"
|
msgstr "Yüzde"
|
||||||
@@ -3687,7 +3701,7 @@ msgstr "Doğrulama için lütfen e-postanızı kontrol edin"
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr "Yeni şifrenizi belirlemek için lütfen aşağıdaki linke tıklayınız"
|
msgstr "Yeni şifrenizi belirlemek için lütfen aşağıdaki linke tıklayınız"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3936,6 +3950,9 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4040,8 +4057,7 @@ msgstr "Sorular başarıyla silindi"
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4059,7 +4075,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr "Sınav Gönderimi"
|
msgstr "Sınav Gönderimi"
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4089,8 +4105,8 @@ msgstr "Sınav başarıyla güncellendi"
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4328,7 +4344,7 @@ msgstr "Kapsam"
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4629,6 +4645,7 @@ msgstr "Durum"
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4700,13 +4717,14 @@ msgstr "Öğrenci {0} zaten bu gruba eklendi."
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr "Öğrenciler"
|
msgstr "Öğrenciler"
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4758,7 +4776,7 @@ msgstr "Kaydedildi {0}"
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4769,7 +4787,7 @@ msgstr "Kaydedildi {0}"
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4791,7 +4809,7 @@ msgstr "Özet"
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr "Pazar"
|
msgstr "Pazar"
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4946,7 +4964,7 @@ msgstr ""
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr "Bu grupta boş yer bulunmamaktadır."
|
msgstr "Bu grupta boş yer bulunmamaktadır."
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr "Bu grupta hiç öğrenci bulunmamaktadır."
|
msgstr "Bu grupta hiç öğrenci bulunmamaktadır."
|
||||||
|
|
||||||
@@ -4954,7 +4972,7 @@ msgstr "Bu grupta hiç öğrenci bulunmamaktadır."
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr "Bu sitede {0} yok."
|
msgstr "Bu sitede {0} yok."
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4977,7 +4995,7 @@ msgstr ""
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr "Bu kursta:"
|
msgstr "Bu kursta:"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr "Bu kurs ücretsizdir."
|
msgstr "Bu kurs ücretsizdir."
|
||||||
|
|
||||||
@@ -5083,7 +5101,7 @@ msgstr ""
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5119,7 +5137,7 @@ msgstr "Alıcı"
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr "Bitiş Tarihi"
|
msgstr "Bitiş Tarihi"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5136,7 +5154,7 @@ msgid "Total"
|
|||||||
msgstr "Toplam"
|
msgstr "Toplam"
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -5537,11 +5555,11 @@ msgstr "Bu gruba kayıt oldunuz"
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr "Bu kursa zaten kayıtlısınız"
|
msgstr "Bu kursa zaten kayıtlısınız"
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
100
lms/locale/zh.po
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: frappe\n"
|
"Project-Id-Version: frappe\n"
|
||||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||||
"POT-Creation-Date: 2024-12-06 16:04+0000\n"
|
"POT-Creation-Date: 2024-12-27 16:04+0000\n"
|
||||||
"PO-Revision-Date: 2024-12-09 23:31\n"
|
"PO-Revision-Date: 2024-12-31 03:29\n"
|
||||||
"Last-Translator: jannat@frappe.io\n"
|
"Last-Translator: jannat@frappe.io\n"
|
||||||
"Language-Team: Chinese Simplified\n"
|
"Language-Team: Chinese Simplified\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -101,7 +101,7 @@ msgstr "活动"
|
|||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:11
|
#: frontend/src/components/Assessments.vue:11
|
||||||
#: frontend/src/components/BatchCourses.vue:11
|
#: frontend/src/components/BatchCourses.vue:11
|
||||||
#: frontend/src/components/BatchStudents.vue:6
|
#: frontend/src/components/BatchStudents.vue:90
|
||||||
#: frontend/src/components/Categories.vue:26
|
#: frontend/src/components/Categories.vue:26
|
||||||
#: frontend/src/components/LiveClass.vue:11
|
#: frontend/src/components/LiveClass.vue:11
|
||||||
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
#: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30
|
||||||
@@ -143,6 +143,10 @@ msgstr ""
|
|||||||
msgid "Add a course"
|
msgid "Add a course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: frontend/src/pages/CourseForm.vue:136
|
||||||
|
msgid "Add a keyword and then press enter"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/OnboardingBanner.vue:73
|
#: frontend/src/components/OnboardingBanner.vue:73
|
||||||
msgid "Add a lesson"
|
msgid "Add a lesson"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -349,6 +353,7 @@ msgstr ""
|
|||||||
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
#. Label of the assessment_tab (Tab Break) field in DocType 'LMS Batch'
|
||||||
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
#. Label of the assessment (Table) field in DocType 'LMS Batch'
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
#: frontend/src/components/Modals/AssessmentModal.vue:27
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:29
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
#: lms/lms/doctype/lms_batch/lms_batch.json lms/templates/assessments.html:11
|
||||||
msgid "Assessment"
|
msgid "Assessment"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -374,6 +379,8 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
#. Label of the show_assessments (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/Assessments.vue:5
|
#: frontend/src/components/Assessments.vue:5
|
||||||
|
#: frontend/src/components/BatchStudents.vue:46
|
||||||
|
#: frontend/src/components/BatchStudents.vue:74
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
#: lms/templates/assessments.html:3
|
#: lms/templates/assessments.html:3
|
||||||
msgid "Assessments"
|
msgid "Assessments"
|
||||||
@@ -961,6 +968,7 @@ msgid "Company Website"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
#. Option for the 'Status' (Select) field in DocType 'LMS Course Progress'
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:13
|
||||||
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
#: lms/lms/doctype/lms_course_progress/lms_course_progress.json
|
||||||
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
#: lms/lms/widgets/CourseCard.html:75 lms/templates/reviews.html:48
|
||||||
msgid "Complete"
|
msgid "Complete"
|
||||||
@@ -978,6 +986,10 @@ msgstr ""
|
|||||||
msgid "Completed"
|
msgid "Completed"
|
||||||
msgstr "已完成"
|
msgstr "已完成"
|
||||||
|
|
||||||
|
#: frontend/src/components/BatchStudents.vue:325
|
||||||
|
msgid "Completed by Students"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:201
|
#: frontend/src/pages/CourseForm.vue:201
|
||||||
msgid "Completion Certificate"
|
msgid "Completion Certificate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1231,7 +1243,7 @@ msgstr ""
|
|||||||
msgid "Course already added to the batch."
|
msgid "Course already added to the batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:460
|
#: frontend/src/pages/CourseForm.vue:461
|
||||||
msgid "Course deleted successfully"
|
msgid "Course deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1249,6 +1261,9 @@ msgstr ""
|
|||||||
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
#. Label of the courses (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchCourses.vue:5
|
#: frontend/src/components/BatchCourses.vue:5
|
||||||
#: frontend/src/components/BatchOverlay.vue:23
|
#: frontend/src/components/BatchOverlay.vue:23
|
||||||
|
#: frontend/src/components/BatchStudents.vue:32
|
||||||
|
#: frontend/src/components/BatchStudents.vue:68
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:61
|
||||||
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68
|
||||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
@@ -1406,7 +1421,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/CourseOutline.vue:235
|
#: frontend/src/components/CourseOutline.vue:235
|
||||||
#: frontend/src/components/CourseOutline.vue:293
|
#: frontend/src/components/CourseOutline.vue:293
|
||||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:473
|
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "删除"
|
msgstr "删除"
|
||||||
|
|
||||||
@@ -1414,7 +1429,7 @@ msgstr "删除"
|
|||||||
msgid "Delete Chapter"
|
msgid "Delete Chapter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:467
|
#: frontend/src/pages/CourseForm.vue:468
|
||||||
msgid "Delete Course"
|
msgid "Delete Course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1426,7 +1441,7 @@ msgstr ""
|
|||||||
msgid "Delete this lesson?"
|
msgid "Delete this lesson?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:468
|
#: frontend/src/pages/CourseForm.vue:469
|
||||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1702,7 +1717,7 @@ msgstr ""
|
|||||||
msgid "Enrollment Count"
|
msgid "Enrollment Count"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1702
|
#: lms/lms/utils.py:1720
|
||||||
msgid "Enrollment Failed"
|
msgid "Enrollment Failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1738,6 +1753,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Question.vue:249
|
#: frontend/src/components/Modals/Question.vue:249
|
||||||
#: frontend/src/components/Modals/Question.vue:269
|
#: frontend/src/components/Modals/Question.vue:269
|
||||||
#: frontend/src/components/Modals/Question.vue:326
|
#: frontend/src/components/Modals/Question.vue:326
|
||||||
|
#: frontend/src/components/Modals/StudentModal.vue:69
|
||||||
#: frontend/src/components/SettingDetails.vue:62
|
#: frontend/src/components/SettingDetails.vue:62
|
||||||
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
#: frontend/src/pages/Billing.vue:264 frontend/src/pages/QuizForm.vue:350
|
||||||
#: frontend/src/pages/QuizForm.vue:365
|
#: frontend/src/pages/QuizForm.vue:365
|
||||||
@@ -2467,10 +2483,6 @@ msgstr ""
|
|||||||
msgid "Join URL"
|
msgid "Join URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:136
|
|
||||||
msgid "Keywords for the course"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#. Name of a Workspace
|
#. Name of a Workspace
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "LMS"
|
msgid "LMS"
|
||||||
@@ -2792,7 +2804,7 @@ msgstr ""
|
|||||||
msgid "Links"
|
msgid "Links"
|
||||||
msgstr "链接"
|
msgstr "链接"
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:147
|
#: frontend/src/pages/Quizzes.vue:149
|
||||||
msgid "List of quizzes"
|
msgid "List of quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2812,7 +2824,9 @@ msgstr ""
|
|||||||
msgid "LiveCode URL"
|
msgid "LiveCode URL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Members.vue:95
|
#: frontend/src/components/Members.vue:106
|
||||||
|
#: frontend/src/pages/QuizSubmissionList.vue:39
|
||||||
|
#: frontend/src/pages/Quizzes.vue:51
|
||||||
msgid "Load More"
|
msgid "Load More"
|
||||||
msgstr "装载更多"
|
msgstr "装载更多"
|
||||||
|
|
||||||
@@ -2907,7 +2921,7 @@ msgstr ""
|
|||||||
msgid "Marks"
|
msgid "Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:23
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:24
|
||||||
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
msgid "Marks for question number {0} cannot be greater than the marks allotted for that question."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2957,7 +2971,7 @@ msgstr "中:"
|
|||||||
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
#. Label of the member (Link) field in DocType 'LMS Program Member'
|
||||||
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the member (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:31
|
#: frontend/src/pages/QuizSubmission.vue:31
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:77
|
#: frontend/src/pages/QuizSubmissionList.vue:86
|
||||||
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
#: lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json
|
||||||
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
#: lms/lms/doctype/exercise_submission/exercise_submission.json
|
||||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||||
@@ -3230,7 +3244,7 @@ msgstr "下一个"
|
|||||||
msgid "Next Question"
|
msgid "Next Question"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/Assessments.vue:63 lms/templates/assessments.html:58
|
#: frontend/src/components/Assessments.vue:66 lms/templates/assessments.html:58
|
||||||
msgid "No Assessments"
|
msgid "No Assessments"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3291,7 +3305,7 @@ msgstr ""
|
|||||||
msgid "No programs found"
|
msgid "No programs found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:56
|
#: frontend/src/pages/Quizzes.vue:61
|
||||||
msgid "No quizzes found"
|
msgid "No quizzes found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3407,7 +3421,7 @@ msgstr ""
|
|||||||
msgid "Only files of type {0} will be accepted."
|
msgid "Only files of type {0} will be accepted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/CourseForm.vue:497 frontend/src/utils/index.js:520
|
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:527
|
||||||
msgid "Only image file is allowed."
|
msgid "Only image file is allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3558,7 +3572,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz'
|
||||||
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the passing_percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:125
|
#: frontend/src/pages/QuizForm.vue:72 frontend/src/pages/Quizzes.vue:127
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Passing Percentage"
|
msgid "Passing Percentage"
|
||||||
@@ -3653,7 +3667,7 @@ msgstr "有待"
|
|||||||
|
|
||||||
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the percentage (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:44
|
#: frontend/src/pages/QuizSubmission.vue:44
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:93
|
#: frontend/src/pages/QuizSubmissionList.vue:97
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
msgid "Percentage"
|
msgid "Percentage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -3687,7 +3701,7 @@ msgstr "请检查您的电子邮件验证"
|
|||||||
msgid "Please click on the following button to set your new password"
|
msgid "Please click on the following button to set your new password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1824 lms/lms/utils.py:1828
|
#: lms/lms/utils.py:1842 lms/lms/utils.py:1846
|
||||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -3936,6 +3950,9 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
#. Label of the progress (Float) field in DocType 'LMS Enrollment'
|
||||||
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
#. Label of the progress (Int) field in DocType 'LMS Program Member'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:53
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:32
|
||||||
|
#: frontend/src/components/Modals/BatchStudentProgress.vue:64
|
||||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||||
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
#: lms/lms/doctype/lms_program_member/lms_program_member.json
|
||||||
msgid "Progress"
|
msgid "Progress"
|
||||||
@@ -4040,8 +4057,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
#. Label of the quiz (Link) field in DocType 'LMS Quiz Submission'
|
||||||
#. Label of a Link in the LMS Workspace
|
#. Label of a Link in the LMS Workspace
|
||||||
#: frontend/src/pages/QuizSubmission.vue:26
|
#: frontend/src/pages/QuizSubmission.vue:26 frontend/src/utils/quiz.js:24
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:82 frontend/src/utils/quiz.js:24
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/lms/workspace/lms/lms.json
|
#: lms/lms/workspace/lms/lms.json
|
||||||
msgid "Quiz"
|
msgid "Quiz"
|
||||||
@@ -4059,7 +4075,7 @@ msgid "Quiz Submission"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizSubmission.vue:122
|
#: frontend/src/pages/QuizSubmission.vue:122
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:102
|
#: frontend/src/pages/QuizSubmissionList.vue:106
|
||||||
msgid "Quiz Submissions"
|
msgid "Quiz Submissions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4089,8 +4105,8 @@ msgstr ""
|
|||||||
msgid "Quiz will appear at the bottom of the lesson."
|
msgid "Quiz will appear at the bottom of the lesson."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:136
|
#: frontend/src/pages/QuizForm.vue:442 frontend/src/pages/Quizzes.vue:138
|
||||||
#: frontend/src/pages/Quizzes.vue:146
|
#: frontend/src/pages/Quizzes.vue:148
|
||||||
msgid "Quizzes"
|
msgid "Quizzes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4328,7 +4344,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
#. Label of the score (Int) field in DocType 'LMS Quiz Submission'
|
||||||
#: frontend/src/pages/QuizSubmission.vue:39
|
#: frontend/src/pages/QuizSubmission.vue:39
|
||||||
#: frontend/src/pages/QuizSubmissionList.vue:87
|
#: frontend/src/pages/QuizSubmissionList.vue:91
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.json
|
||||||
#: lms/templates/quiz/quiz.html:148
|
#: lms/templates/quiz/quiz.html:148
|
||||||
msgid "Score"
|
msgid "Score"
|
||||||
@@ -4629,6 +4645,7 @@ msgstr "州"
|
|||||||
|
|
||||||
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
#. Label of the tab_4_tab (Tab Break) field in DocType 'LMS Course'
|
||||||
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
#. Label of the statistics (Check) field in DocType 'LMS Settings'
|
||||||
|
#: frontend/src/components/BatchStudents.vue:5
|
||||||
#: lms/lms/doctype/lms_course/lms_course.json
|
#: lms/lms/doctype/lms_course/lms_course.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
#: lms/lms/doctype/lms_settings/lms_settings.json lms/www/lms.py:133
|
||||||
msgid "Statistics"
|
msgid "Statistics"
|
||||||
@@ -4700,13 +4717,14 @@ msgstr ""
|
|||||||
|
|
||||||
#. Label of the students (Table) field in DocType 'LMS Batch'
|
#. Label of the students (Table) field in DocType 'LMS Batch'
|
||||||
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
#. Label of the show_students (Check) field in DocType 'LMS Settings'
|
||||||
#: frontend/src/components/BatchStudents.vue:9
|
#: frontend/src/components/BatchStudents.vue:18
|
||||||
|
#: frontend/src/components/BatchStudents.vue:84
|
||||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||||
msgid "Students"
|
msgid "Students"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
msgid "Students deleted successfully"
|
msgid "Students deleted successfully"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4758,7 +4776,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: frontend/src/components/BatchCourses.vue:150
|
#: frontend/src/components/BatchCourses.vue:150
|
||||||
#: frontend/src/components/BatchOverlay.vue:135
|
#: frontend/src/components/BatchOverlay.vue:135
|
||||||
#: frontend/src/components/BatchStudents.vue:157
|
#: frontend/src/components/BatchStudents.vue:282
|
||||||
#: frontend/src/components/CourseCardOverlay.vue:161
|
#: frontend/src/components/CourseCardOverlay.vue:161
|
||||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||||
@@ -4769,7 +4787,7 @@ msgstr ""
|
|||||||
#: frontend/src/components/Modals/Event.vue:310
|
#: frontend/src/components/Modals/Event.vue:310
|
||||||
#: frontend/src/components/Modals/Question.vue:264
|
#: frontend/src/components/Modals/Question.vue:264
|
||||||
#: frontend/src/components/Modals/Question.vue:315
|
#: frontend/src/components/Modals/Question.vue:315
|
||||||
#: frontend/src/pages/CourseForm.vue:460 frontend/src/pages/ProgramForm.vue:229
|
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||||
#: frontend/src/pages/ProgramForm.vue:251
|
#: frontend/src/pages/ProgramForm.vue:251
|
||||||
#: frontend/src/pages/ProgramForm.vue:272
|
#: frontend/src/pages/ProgramForm.vue:272
|
||||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:343
|
||||||
@@ -4791,7 +4809,7 @@ msgstr "概要"
|
|||||||
msgid "Sunday"
|
msgid "Sunday"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/api.py:951
|
#: lms/lms/api.py:952
|
||||||
msgid "Suspicious pattern found in {0}: {1}"
|
msgid "Suspicious pattern found in {0}: {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4946,7 +4964,7 @@ msgstr ""
|
|||||||
msgid "There are no seats available in this batch."
|
msgid "There are no seats available in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/components/BatchStudents.vue:67
|
#: frontend/src/components/BatchStudents.vue:165
|
||||||
msgid "There are no students in this batch."
|
msgid "There are no students in this batch."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4954,7 +4972,7 @@ msgstr ""
|
|||||||
msgid "There are no {0} on this site."
|
msgid "There are no {0} on this site."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:41
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:42
|
||||||
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
msgid "There has been an update on your submission. You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -4977,7 +4995,7 @@ msgstr ""
|
|||||||
msgid "This course has:"
|
msgid "This course has:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/utils.py:1582
|
#: lms/lms/utils.py:1600
|
||||||
msgid "This course is free."
|
msgid "This course is free."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5083,7 +5101,7 @@ msgstr ""
|
|||||||
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
#: frontend/src/pages/BatchForm.vue:20 frontend/src/pages/CourseForm.vue:32
|
||||||
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
#: frontend/src/pages/JobCreation.vue:20 frontend/src/pages/ProgramForm.vue:11
|
||||||
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
#: frontend/src/pages/Programs.vue:118 frontend/src/pages/QuizForm.vue:48
|
||||||
#: frontend/src/pages/Quizzes.vue:114 lms/lms/doctype/cohort/cohort.json
|
#: frontend/src/pages/Quizzes.vue:116 lms/lms/doctype/cohort/cohort.json
|
||||||
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
#: lms/lms/doctype/cohort_subgroup/cohort_subgroup.json
|
||||||
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
#: lms/lms/doctype/cohort_web_page/cohort_web_page.json
|
||||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||||
@@ -5119,7 +5137,7 @@ msgstr "至"
|
|||||||
msgid "To Date"
|
msgid "To Date"
|
||||||
msgstr "至今"
|
msgstr "至今"
|
||||||
|
|
||||||
#: lms/lms/utils.py:1593
|
#: lms/lms/utils.py:1611
|
||||||
msgid "To join this batch, please contact the Administrator."
|
msgid "To join this batch, please contact the Administrator."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -5136,7 +5154,7 @@ msgid "Total"
|
|||||||
msgstr "总"
|
msgstr "总"
|
||||||
|
|
||||||
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
#. Label of the total_marks (Int) field in DocType 'LMS Quiz'
|
||||||
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:119
|
#: frontend/src/pages/QuizForm.vue:67 frontend/src/pages/Quizzes.vue:121
|
||||||
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
#: lms/lms/doctype/lms_quiz/lms_quiz.json
|
||||||
msgid "Total Marks"
|
msgid "Total Marks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -5537,11 +5555,11 @@ msgstr ""
|
|||||||
msgid "You have been enrolled in this course"
|
msgid "You have been enrolled in this course"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:38
|
#: lms/lms/doctype/lms_quiz_submission/lms_quiz_submission.py:39
|
||||||
msgid "You have got a score of {0} for the quiz {1}"
|
msgid "You have got a score of {0} for the quiz {1}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: frontend/src/pages/Quizzes.vue:60
|
#: frontend/src/pages/Quizzes.vue:65
|
||||||
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
msgid "You have not created any quizzes yet. To create a new quiz, click on the \"New Quiz\" button above."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -162,3 +162,14 @@ class SCORMRenderer(BaseRenderer):
|
|||||||
)
|
)
|
||||||
response.mimetype = mimetypes.guess_type(path)[0]
|
response.mimetype = mimetypes.guess_type(path)[0]
|
||||||
return response
|
return response
|
||||||
|
else:
|
||||||
|
path = path.replace(".html", "")
|
||||||
|
if os.path.exists(path) and os.path.isdir(path):
|
||||||
|
index_path = os.path.join(path, "index.html")
|
||||||
|
if os.path.exists(index_path):
|
||||||
|
f = open(index_path, "rb")
|
||||||
|
response = Response(
|
||||||
|
wrap_file(frappe.local.request.environ, f), direct_passthrough=True
|
||||||
|
)
|
||||||
|
response.mimetype = mimetypes.guess_type(index_path)[0]
|
||||||
|
return response
|
||||||
|
|||||||