Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9b3906359b | ||
|
|
4224580d6f | ||
|
|
07d30647d8 | ||
|
|
263096fc77 | ||
|
|
b510cbce7f | ||
|
|
0b84dc3266 | ||
|
|
7ee7b95eb5 | ||
|
|
83b8bdde45 | ||
|
|
1b5dd15b90 | ||
|
|
47c224fcad | ||
|
|
1c866f40eb | ||
|
|
1861aabaca | ||
|
|
cd8fb6eb38 | ||
|
|
21d05d3731 | ||
|
|
7c953925f9 | ||
|
|
33a4bbbe47 | ||
|
|
03915ccfbd | ||
|
|
c6d59216fd |
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@@ -39,7 +39,7 @@ jobs:
|
||||
node-version: '18'
|
||||
check-latest: true
|
||||
- name: setup cache for bench
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/bench-cache
|
||||
key: ${{ runner.os }}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"codemirror-editor-vue3": "^2.8.0",
|
||||
"dayjs": "^1.11.6",
|
||||
"feather-icons": "^4.28.0",
|
||||
"frappe-ui": "^0.1.109",
|
||||
"frappe-ui": "^0.1.112",
|
||||
"lucide-vue-next": "^0.383.0",
|
||||
"markdown-it": "^14.0.0",
|
||||
"pinia": "^2.0.33",
|
||||
|
||||
@@ -65,8 +65,7 @@
|
||||
<div>
|
||||
<TrialBanner
|
||||
v-if="
|
||||
userResource.data?.user_type == 'System User' &&
|
||||
userResource.data?.is_fc_site
|
||||
userResource.data?.is_system_manager && userResource.data?.is_fc_site
|
||||
"
|
||||
:isSidebarCollapsed="sidebarStore.isSidebarCollapsed"
|
||||
/>
|
||||
|
||||
@@ -130,7 +130,7 @@ import {
|
||||
ComboboxOptions,
|
||||
ComboboxOption,
|
||||
} from '@headlessui/vue'
|
||||
import { Popover, Button } from 'frappe-ui'
|
||||
import { Popover } from 'frappe-ui'
|
||||
import { ChevronDown, X } from 'lucide-vue-next'
|
||||
import { ref, computed, useAttrs, useSlots, watch, nextTick } from 'vue'
|
||||
|
||||
|
||||
23
frontend/src/components/Icons/FrappeCloudIcon.vue
Normal file
23
frontend/src/components/Icons/FrappeCloudIcon.vue
Normal file
@@ -0,0 +1,23 @@
|
||||
<template>
|
||||
<svg
|
||||
width="32"
|
||||
height="32"
|
||||
viewBox="0 0 32 32"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<rect
|
||||
x="0.75"
|
||||
y="0.75"
|
||||
width="30.5"
|
||||
height="30.5"
|
||||
rx="6.25"
|
||||
stroke="currentColor"
|
||||
stroke-width="1.5"
|
||||
/>
|
||||
<path
|
||||
d="M24.5011 14.1124C23.3954 12.4873 21.532 11.5477 19.594 11.6747C18.7616 10.1384 17.2211 9.12267 15.4198 9.0084C14.1651 8.93222 12.8979 9.3766 11.9165 10.24C11.2456 10.8367 10.7611 11.5223 10.463 12.2968C10.289 12.7539 9.89151 13.0459 9.46912 13.0459H6.5V15.5852H9.46912C10.9226 15.5852 12.2271 14.6584 12.7737 13.2237C12.9227 12.8301 13.1712 12.4873 13.5439 12.1571C14.0284 11.7255 14.662 11.4969 15.2583 11.535C16.1528 11.5985 16.7863 12.0175 17.1839 12.538C17.6063 13.0205 17.8423 13.7696 17.979 14.5187C18.774 14.2902 19.6437 14.0997 20.476 14.2394C21.1593 14.3536 21.7929 14.7218 22.2525 15.2678C22.327 15.3567 22.4016 15.4456 22.4637 15.5471C23.06 16.4232 23.1718 17.5024 22.7743 18.5689C22.414 19.5592 21.0847 20.4607 19.9791 20.4607H11.3326C10.1524 20.4607 9.18339 19.5592 9.03432 18.4038H6.54969C6.71119 20.9686 8.78585 23 11.3326 23H19.9915C22.1283 23 24.3769 21.451 25.1098 19.4704C25.7931 17.6167 25.5695 15.6614 24.5135 14.0997L24.5011 14.1124Z"
|
||||
fill="currentColor"
|
||||
/>
|
||||
</svg>
|
||||
</template>
|
||||
@@ -1,94 +0,0 @@
|
||||
<template>
|
||||
<Dialog
|
||||
v-model="show"
|
||||
:options="{
|
||||
size: 'xl',
|
||||
title: __('Login to Frappe Cloud'),
|
||||
actions: [
|
||||
{
|
||||
label: __('Verify'),
|
||||
variant: 'solid',
|
||||
onClick: (close) => {
|
||||
verifyCode(close)
|
||||
},
|
||||
},
|
||||
],
|
||||
}"
|
||||
>
|
||||
<template #body-content>
|
||||
<div>
|
||||
<p>
|
||||
{{ __('We have sent the verificaton code to your email id ') }}
|
||||
<b>{{ props.email }}</b>
|
||||
</p>
|
||||
<FormControl
|
||||
v-model="code"
|
||||
:label="__('Verification Code')"
|
||||
class="mb-4"
|
||||
/>
|
||||
<p>
|
||||
{{ __("Didn't receive the code?") }}
|
||||
<a href="#" @click="resendCode">{{ __('Resend') }}</a>
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
</Dialog>
|
||||
</template>
|
||||
<script setup>
|
||||
import { call, Dialog } from 'frappe-ui'
|
||||
import { showToast } from '@/utils'
|
||||
|
||||
const show = defineModel()
|
||||
const code = ref('')
|
||||
|
||||
const props = defineProps({
|
||||
email: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
})
|
||||
|
||||
const verifyCode = (close) => {
|
||||
if (!code.value) {
|
||||
return
|
||||
}
|
||||
call(
|
||||
'frappe.integrations.frappe_providers.frappecloud_billing.verify_verification_code',
|
||||
{
|
||||
verification_code: code.value,
|
||||
route: window.route,
|
||||
}
|
||||
)
|
||||
.then((data) => {
|
||||
if (data.message.login_token) {
|
||||
close()
|
||||
window.open(
|
||||
`${frappeCloudBaseEndpoint}/api/method/press.api.developer.saas.login_to_fc?token=${data.message.login_token}`,
|
||||
'_blank'
|
||||
)
|
||||
showToast(
|
||||
__('Frappe Cloud Login Successful'),
|
||||
`<p>${__('You will be redirected to Frappe Cloud soon.')}</p><p>${__(
|
||||
"If you haven't been redirected,"
|
||||
)} <a href="${frappeCloudBaseEndpoint}/api/method/press.api.developer.saas.login_to_fc?token=${
|
||||
data.message.login_token
|
||||
}" target="_blank">${__('Click here to login')}</a></p>`,
|
||||
'check'
|
||||
)
|
||||
} else {
|
||||
showToast(__('Login failed'), __('Please try again'), 'x')
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
showToast(__('Login failed'), __('Please try again'), 'x')
|
||||
})
|
||||
}
|
||||
|
||||
const resendCode = () => {
|
||||
call(
|
||||
'frappe.integrations.frappe_providers.frappecloud_billing.send_verification_code'
|
||||
).catch((err) => {
|
||||
showToast(__('Failed to resend code'), __('Please try again'), 'x')
|
||||
})
|
||||
}
|
||||
</script>
|
||||
@@ -39,13 +39,19 @@
|
||||
:required="true"
|
||||
/>
|
||||
</Tooltip>
|
||||
<FormControl
|
||||
v-model="liveClass.timezone"
|
||||
type="select"
|
||||
:options="getTimezoneOptions()"
|
||||
:label="__('Timezone')"
|
||||
:required="true"
|
||||
/>
|
||||
|
||||
<div class="space-y-1.5">
|
||||
<label class="block text-ink-gray-5 text-xs" for="batchTimezone">
|
||||
{{ __('Timezone') }}
|
||||
<span class="text-ink-red-3">*</span>
|
||||
</label>
|
||||
<Autocomplete
|
||||
@update:modelValue="(opt) => (liveClass.timezone = opt.value)"
|
||||
:modelValue="liveClass.timezone"
|
||||
:options="getTimezoneOptions()"
|
||||
:required="true"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<FormControl
|
||||
@@ -83,18 +89,14 @@
|
||||
</template>
|
||||
<script setup>
|
||||
import {
|
||||
Input,
|
||||
DatePicker,
|
||||
Select,
|
||||
Textarea,
|
||||
Dialog,
|
||||
createResource,
|
||||
Tooltip,
|
||||
FormControl,
|
||||
Autocomplete,
|
||||
} from 'frappe-ui'
|
||||
import { reactive, inject } from 'vue'
|
||||
import { getTimezones, createToast } from '@/utils/'
|
||||
import { Info } from 'lucide-vue-next'
|
||||
|
||||
const liveClasses = defineModel('reloadLiveClasses')
|
||||
const show = defineModel()
|
||||
|
||||
@@ -59,22 +59,21 @@
|
||||
v-if="userResource.data?.is_moderator"
|
||||
v-model="showSettingsModal"
|
||||
/>
|
||||
<FCVerfiyCodeModal v-if="showFCLoginDialog" :email="verificationEmail" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import LMSLogo from '@/components/Icons/LMSLogo.vue'
|
||||
import { sessionStore } from '@/stores/session'
|
||||
import { call, Dropdown } from 'frappe-ui'
|
||||
import { Dropdown } from 'frappe-ui'
|
||||
import Apps from '@/components/Apps.vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { convertToTitleCase, showToast } from '@/utils'
|
||||
import { convertToTitleCase } from '@/utils'
|
||||
import { usersStore } from '@/stores/user'
|
||||
import { useSettings } from '@/stores/settings'
|
||||
import { markRaw, watch, ref, onMounted, computed } from 'vue'
|
||||
import SettingsModal from '@/components/Modals/Settings.vue'
|
||||
import { createDialog } from '@/utils/dialogs'
|
||||
import FCVerfiyCodeModal from './Modals/FCVerfiyCodeModal.vue'
|
||||
import SettingsModal from '@/components/Modals/Settings.vue'
|
||||
import FrappeCloudIcon from '@/components/Icons/FrappeCloudIcon.vue'
|
||||
import {
|
||||
ChevronDown,
|
||||
LogIn,
|
||||
@@ -83,7 +82,6 @@ import {
|
||||
User,
|
||||
Settings,
|
||||
Sun,
|
||||
LogInIcon,
|
||||
} from 'lucide-vue-next'
|
||||
|
||||
const router = useRouter()
|
||||
@@ -93,11 +91,8 @@ const settingsStore = useSettings()
|
||||
let { isLoggedIn } = sessionStore()
|
||||
const showSettingsModal = ref(false)
|
||||
const theme = ref('light')
|
||||
const $dialog = createDialog
|
||||
const frappeCloudBaseEndpoint = 'https://frappecloud.com'
|
||||
|
||||
const showFCLoginDialog = ref(false)
|
||||
const verificationEmail = ref(null)
|
||||
const $dialog = createDialog
|
||||
|
||||
const props = defineProps({
|
||||
isCollapsed: {
|
||||
@@ -166,15 +161,29 @@ const userDropdownOptions = computed(() => {
|
||||
},
|
||||
},
|
||||
{
|
||||
icon: LogInIcon,
|
||||
icon: FrappeCloudIcon,
|
||||
label: 'Login to Frappe Cloud',
|
||||
onClick: () => {
|
||||
initiateRequestForLoginToFrappeCloud()
|
||||
$dialog({
|
||||
title: __('Login to Frappe Cloud?'),
|
||||
message: __(
|
||||
'Are you sure you want to login to your Frappe Cloud dashboard?'
|
||||
),
|
||||
actions: [
|
||||
{
|
||||
label: __('Confirm'),
|
||||
variant: 'solid',
|
||||
onClick(close) {
|
||||
loginToFrappeCloud()
|
||||
close()
|
||||
},
|
||||
},
|
||||
],
|
||||
})
|
||||
},
|
||||
condition: () => {
|
||||
return (
|
||||
userResource.data?.user_type == 'System User' &&
|
||||
userResource.data?.is_fc_site
|
||||
userResource.data?.is_system_manager && userResource.data?.is_fc_site
|
||||
)
|
||||
},
|
||||
},
|
||||
@@ -203,47 +212,11 @@ const userDropdownOptions = computed(() => {
|
||||
]
|
||||
})
|
||||
|
||||
const initiateRequestForLoginToFrappeCloud = () => {
|
||||
$dialog({
|
||||
title: __('Login to Frappe Cloud?'),
|
||||
message: __(
|
||||
'Are you sure you want to login to your Frappe Cloud dashboard?'
|
||||
),
|
||||
actions: [
|
||||
{
|
||||
label: __('Confirm'),
|
||||
variant: 'solid',
|
||||
onClick(close) {
|
||||
requestLoginToFC()
|
||||
close()
|
||||
},
|
||||
},
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
const requestLoginToFC = () => {
|
||||
call(
|
||||
'frappe.integrations.frappe_providers.frappecloud_billing.send_verification_code'
|
||||
)
|
||||
.then((data) => {
|
||||
if (data.message.is_user_logged_in) {
|
||||
window.open(
|
||||
`${frappeCloudBaseEndpoint}${data.message.redirect_to}`,
|
||||
'_blank'
|
||||
)
|
||||
return
|
||||
} else {
|
||||
showFCLoginDialog.value = true
|
||||
verificationEmail.value = data.message.email
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
showToast(
|
||||
__('Failed to login to Frappe Cloud'),
|
||||
__('Please try again'),
|
||||
'x'
|
||||
)
|
||||
})
|
||||
const loginToFrappeCloud = () => {
|
||||
let redirect_to = '/dashboard/welcome'
|
||||
if (userResource.data?.site_info.is_payment_method_added) {
|
||||
redirect_to = '/dashboard/sites/' + userResource.data.sitename
|
||||
}
|
||||
window.open(`${frappeCloudBaseEndpoint}${redirect_to}`, '_blank')
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -271,7 +271,7 @@ const isStudent = computed(() => {
|
||||
)
|
||||
})
|
||||
|
||||
const tabIndex = useRouteQuery('tab', 0)
|
||||
const tabIndex = useRouteQuery('tab', 0, { transform: Number })
|
||||
const tabs = computed(() => {
|
||||
let batchTabs = []
|
||||
batchTabs.push({
|
||||
|
||||
2441
frontend/yarn.lock
Normal file
2441
frontend/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
__version__ = "2.24.0"
|
||||
__version__ = "2.25.0"
|
||||
|
||||
@@ -23,7 +23,10 @@ from frappe.utils import (
|
||||
from lms.lms.utils import get_average_rating, get_lesson_count
|
||||
from xml.dom.minidom import parseString
|
||||
from lms.lms.doctype.course_lesson.course_lesson import save_progress
|
||||
from frappe.integrations.frappe_providers.frappecloud_billing import is_fc_site
|
||||
from frappe.integrations.frappe_providers.frappecloud_billing import (
|
||||
is_fc_site,
|
||||
current_site_info,
|
||||
)
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
@@ -177,6 +180,10 @@ def get_user_info():
|
||||
user.is_evaluator = "Batch Evaluator" in user.roles
|
||||
user.is_student = "LMS Student" in user.roles
|
||||
user.is_fc_site = is_fc_site()
|
||||
user.is_system_manager = "System Manager" in user.roles
|
||||
if user.is_fc_site and user.is_system_manager:
|
||||
user.site_info = current_site_info()
|
||||
user.sitename = frappe.local.site
|
||||
return user
|
||||
|
||||
|
||||
|
||||
1086
lms/locale/bs.po
1086
lms/locale/bs.po
File diff suppressed because it is too large
Load Diff
@@ -3,7 +3,7 @@ msgstr ""
|
||||
"Project-Id-Version: frappe\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-02-21 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-02-24 19:35\n"
|
||||
"PO-Revision-Date: 2025-02-28 20:30\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: Persian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -1080,7 +1080,7 @@ msgstr "ثبت نام خود را تکمیل کنید - فرصت را از دس
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/widgets/CourseCard.html:78
|
||||
msgid "Completed"
|
||||
msgstr "تکمیل شد"
|
||||
msgstr "تکمیل شده"
|
||||
|
||||
#: frontend/src/components/BatchStudents.vue:369
|
||||
msgid "Completed by Students"
|
||||
@@ -1525,7 +1525,7 @@ msgstr "عزیز "
|
||||
#. Label of the default_currency (Link) field in DocType 'LMS Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
msgid "Default Currency"
|
||||
msgstr "ارز پیش فرض"
|
||||
msgstr "ارز پیشفرض"
|
||||
|
||||
#. Label of the degree_type (Data) field in DocType 'Education Detail'
|
||||
#: lms/lms/doctype/education_detail/education_detail.json
|
||||
@@ -4464,7 +4464,7 @@ msgstr ""
|
||||
|
||||
#: frontend/src/pages/BatchForm.vue:77 frontend/src/pages/CourseForm.vue:99
|
||||
msgid "Remove"
|
||||
msgstr "برداشتن"
|
||||
msgstr "حدف"
|
||||
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:27
|
||||
msgid "Reply To"
|
||||
@@ -5105,7 +5105,7 @@ msgstr "خلاصه"
|
||||
#: lms/lms/doctype/evaluator_schedule/evaluator_schedule.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
msgid "Sunday"
|
||||
msgstr "یکشنبه"
|
||||
msgstr "یکشنبه"
|
||||
|
||||
#: lms/lms/api.py:999
|
||||
msgid "Suspicious pattern found in {0}: {1}"
|
||||
@@ -5352,7 +5352,7 @@ msgstr ""
|
||||
#: lms/lms/doctype/evaluator_schedule/evaluator_schedule.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
msgid "Thursday"
|
||||
msgstr "پنج شنبه"
|
||||
msgstr "پنجشنبه"
|
||||
|
||||
#. Label of the time (Time) field in DocType 'LMS Live Class'
|
||||
#: frontend/src/components/Modals/Event.vue:48
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Frappe LMS VERSION\n"
|
||||
"Report-Msgid-Bugs-To: jannat@frappe.io\n"
|
||||
"POT-Creation-Date: 2025-02-21 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-02-21 16:04+0000\n"
|
||||
"POT-Creation-Date: 2025-02-28 16:04+0000\n"
|
||||
"PO-Revision-Date: 2025-02-28 16:04+0000\n"
|
||||
"Last-Translator: jannat@frappe.io\n"
|
||||
"Language-Team: jannat@frappe.io\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -65,6 +65,10 @@ msgstr ""
|
||||
msgid "<span style=\"font-size: 18px;\"><b>Statistics</b></span>"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:58
|
||||
msgid "A course cannot have both paid certificate and certificate of completion."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:40
|
||||
msgid "A one line introduction to the course that appears on the course card"
|
||||
msgstr ""
|
||||
@@ -187,16 +191,16 @@ msgid "Add your assignment as {0}"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the address (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/pages/Billing.vue:17 frontend/src/pages/Billing.vue:69
|
||||
#: frontend/src/pages/Billing.vue:64
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
msgid "Address"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:79
|
||||
#: frontend/src/pages/Billing.vue:74
|
||||
msgid "Address Line 1"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:83
|
||||
#: frontend/src/pages/Billing.vue:78
|
||||
msgid "Address Line 2"
|
||||
msgstr ""
|
||||
|
||||
@@ -267,9 +271,11 @@ msgid "Already Registered"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the amount (Currency) field in DocType 'LMS Batch'
|
||||
#. Label of the course_price (Currency) field in DocType 'LMS Course'
|
||||
#. Label of the amount (Currency) field in DocType 'LMS Payment'
|
||||
#: frontend/src/pages/BatchForm.vue:209
|
||||
#: frontend/src/pages/BatchForm.vue:209 frontend/src/pages/CourseForm.vue:220
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
#: lms/public/js/common_functions.js:379
|
||||
msgid "Amount"
|
||||
@@ -283,11 +289,15 @@ msgstr ""
|
||||
msgid "Amount (USD)"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:61
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:60
|
||||
msgid "Amount and currency are required for paid batches."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:57
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:69
|
||||
msgid "Amount and currency are required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:66
|
||||
msgid "Amount and currency are required for paid courses."
|
||||
msgstr ""
|
||||
|
||||
@@ -362,7 +372,7 @@ msgstr ""
|
||||
msgid "Archived"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:129
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:135
|
||||
msgid "Are you sure you want to cancel this evaluation? This action cannot be undone."
|
||||
msgstr ""
|
||||
|
||||
@@ -398,7 +408,7 @@ msgstr ""
|
||||
msgid "Assessment added successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:71
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:70
|
||||
msgid "Assessment {0} has already been added to this batch."
|
||||
msgstr ""
|
||||
|
||||
@@ -494,7 +504,7 @@ msgstr ""
|
||||
msgid "Average of Feedback Received"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Lesson.vue:96
|
||||
#: frontend/src/pages/Lesson.vue:97
|
||||
msgid "Back to Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -600,7 +610,7 @@ msgstr ""
|
||||
msgid "Batch Start Date:"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:430
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:418
|
||||
msgid "Batch Start Reminder"
|
||||
msgstr ""
|
||||
|
||||
@@ -615,7 +625,7 @@ msgstr ""
|
||||
msgid "Batch Updated"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:42
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:41
|
||||
msgid "Batch end date cannot be before the batch start date"
|
||||
msgstr ""
|
||||
|
||||
@@ -651,7 +661,7 @@ msgid "Billing Details"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the billing_name (Data) field in DocType 'LMS Payment'
|
||||
#: frontend/src/pages/Billing.vue:75
|
||||
#: frontend/src/pages/Billing.vue:70
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
msgid "Billing Name"
|
||||
msgstr ""
|
||||
@@ -680,7 +690,7 @@ msgstr ""
|
||||
msgid "Business Owner"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:45
|
||||
#: frontend/src/components/CourseCardOverlay.vue:47
|
||||
msgid "Buy this course"
|
||||
msgstr ""
|
||||
|
||||
@@ -693,12 +703,12 @@ msgstr ""
|
||||
msgid "CGPA/4"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:55
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:134
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:61
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:140
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:128
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:134
|
||||
msgid "Cancel this evaluation?"
|
||||
msgstr ""
|
||||
|
||||
@@ -739,7 +749,9 @@ msgstr ""
|
||||
msgid "Category Name"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certificate (Link) field in DocType 'LMS Enrollment'
|
||||
#. Label of a shortcut in the LMS Workspace
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
#: lms/lms/workspace/lms/lms.json
|
||||
msgid "Certificate"
|
||||
msgstr ""
|
||||
@@ -753,6 +765,10 @@ msgstr ""
|
||||
msgid "Certificate Link"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:124
|
||||
msgid "Certificate of Completion"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/Event.vue:310
|
||||
msgid "Certificate saved successfully"
|
||||
msgstr ""
|
||||
@@ -768,15 +784,20 @@ msgstr ""
|
||||
#. Label of the certification (Table) field in DocType 'User'
|
||||
#. Name of a DocType
|
||||
#. Label of the certification (Check) field in DocType 'LMS Batch'
|
||||
#. Label of the certification_tab (Tab Break) field in DocType 'LMS Course'
|
||||
#. Label of the certification_section (Section Break) field in DocType 'LMS
|
||||
#. Enrollment'
|
||||
#. Label of a Card Break in the LMS Workspace
|
||||
#. Label of a Link in the LMS Workspace
|
||||
#: frontend/src/components/CourseCard.vue:110
|
||||
#: frontend/src/components/Modals/Event.vue:371
|
||||
#: frontend/src/pages/BatchForm.vue:37 frontend/src/pages/Batches.vue:38
|
||||
#: frontend/src/pages/CourseCertification.vue:10
|
||||
#: frontend/src/pages/CourseCertification.vue:114
|
||||
#: lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/certification/certification.json
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json lms/lms/workspace/lms/lms.json
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
#: lms/lms/workspace/lms/lms.json
|
||||
msgid "Certification"
|
||||
msgstr ""
|
||||
|
||||
@@ -785,11 +806,6 @@ msgstr ""
|
||||
msgid "Certification Details"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the expiry (Int) field in DocType 'LMS Course'
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
msgid "Certification Expires After (Years)"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the certification_name (Data) field in DocType 'Certification'
|
||||
#: lms/lms/doctype/certification/certification.json
|
||||
msgid "Certification Name"
|
||||
@@ -877,7 +893,7 @@ msgid "Choose one answer"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the city (Data) field in DocType 'User'
|
||||
#: frontend/src/pages/Billing.vue:86 lms/fixtures/custom_field.json
|
||||
#: frontend/src/pages/Billing.vue:81 lms/fixtures/custom_field.json
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
@@ -1084,7 +1100,9 @@ msgstr ""
|
||||
msgid "Completed by Students"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:201
|
||||
#. Label of the enable_certification (Check) field in DocType 'LMS Course'
|
||||
#: frontend/src/pages/CourseForm.vue:212
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
msgid "Completion Certificate"
|
||||
msgstr ""
|
||||
|
||||
@@ -1124,7 +1142,7 @@ msgstr ""
|
||||
msgid "Congratulations on getting certified!"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:53
|
||||
#: frontend/src/components/CourseCardOverlay.vue:55
|
||||
msgid "Contact the Administrator to enroll for this course."
|
||||
msgstr ""
|
||||
|
||||
@@ -1146,7 +1164,7 @@ msgstr ""
|
||||
msgid "Contract"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:438
|
||||
#: lms/lms/utils.py:437
|
||||
msgid "Cookie Policy"
|
||||
msgstr ""
|
||||
|
||||
@@ -1174,7 +1192,7 @@ msgstr ""
|
||||
|
||||
#. Label of the country (Link) field in DocType 'User'
|
||||
#. Label of the country (Link) field in DocType 'Payment Country'
|
||||
#: frontend/src/pages/Billing.vue:97 lms/fixtures/custom_field.json
|
||||
#: frontend/src/pages/Billing.vue:92 lms/fixtures/custom_field.json
|
||||
#: lms/lms/doctype/payment_country/payment_country.json
|
||||
msgid "Country"
|
||||
msgstr ""
|
||||
@@ -1253,10 +1271,6 @@ msgstr ""
|
||||
msgid "Course Completed"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/widgets/CourseOutline.html:9
|
||||
msgid "Course Content"
|
||||
msgstr ""
|
||||
|
||||
#. Name of a role
|
||||
#: frontend/src/pages/ProfileRoles.vue:16
|
||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||
@@ -1307,12 +1321,6 @@ msgstr ""
|
||||
msgid "Course Outline"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the course_price (Currency) field in DocType 'LMS Course'
|
||||
#: frontend/src/pages/CourseForm.vue:219
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
msgid "Course Price"
|
||||
msgstr ""
|
||||
|
||||
#. Name of a report
|
||||
#: lms/lms/report/course_progress_summary/course_progress_summary.json
|
||||
msgid "Course Progress Summary"
|
||||
@@ -1345,11 +1353,11 @@ msgstr ""
|
||||
msgid "Course added to program"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:277
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:265
|
||||
msgid "Course already added to the batch."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:461
|
||||
#: frontend/src/pages/CourseForm.vue:469
|
||||
msgid "Course deleted successfully"
|
||||
msgstr ""
|
||||
|
||||
@@ -1357,7 +1365,7 @@ msgstr ""
|
||||
msgid "Course moved successfully"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:50
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:49
|
||||
#: lms/lms/doctype/lms_program/lms_program.py:19
|
||||
msgid "Course {0} has already been added to this batch."
|
||||
msgstr ""
|
||||
@@ -1371,6 +1379,7 @@ msgstr ""
|
||||
#: frontend/src/components/BatchStudents.vue:92
|
||||
#: frontend/src/components/Modals/BatchStudentProgress.vue:79
|
||||
#: frontend/src/pages/BatchDetail.vue:21 frontend/src/pages/BatchDetail.vue:70
|
||||
#: frontend/src/pages/CourseCertification.vue:106
|
||||
#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:21
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -1431,7 +1440,7 @@ msgstr ""
|
||||
#. Label of the currency (Link) field in DocType 'LMS Batch'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Course'
|
||||
#. Label of the currency (Link) field in DocType 'LMS Payment'
|
||||
#: frontend/src/pages/BatchForm.vue:217 frontend/src/pages/CourseForm.vue:226
|
||||
#: frontend/src/pages/BatchForm.vue:217 frontend/src/pages/CourseForm.vue:225
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -1532,7 +1541,7 @@ msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseOutline.vue:240
|
||||
#: frontend/src/components/CourseOutline.vue:298
|
||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474
|
||||
#: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:482
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
@@ -1540,7 +1549,7 @@ msgstr ""
|
||||
msgid "Delete Chapter"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:468
|
||||
#: frontend/src/pages/CourseForm.vue:476
|
||||
msgid "Delete Course"
|
||||
msgstr ""
|
||||
|
||||
@@ -1552,7 +1561,7 @@ msgstr ""
|
||||
msgid "Delete this lesson?"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:469
|
||||
#: frontend/src/pages/CourseForm.vue:477
|
||||
msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?"
|
||||
msgstr ""
|
||||
|
||||
@@ -1607,7 +1616,7 @@ msgstr ""
|
||||
msgid "Didn't receive the code?"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:196
|
||||
#: frontend/src/pages/CourseForm.vue:194
|
||||
msgid "Disable Self Enrollment"
|
||||
msgstr ""
|
||||
|
||||
@@ -1684,9 +1693,9 @@ msgid "E-mail"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/BatchOverlay.vue:107
|
||||
#: frontend/src/components/CourseCardOverlay.vue:86
|
||||
#: frontend/src/components/CourseCardOverlay.vue:88
|
||||
#: frontend/src/components/Modals/ChapterModal.vue:9
|
||||
#: frontend/src/pages/JobDetail.vue:31 frontend/src/pages/Lesson.vue:65
|
||||
#: frontend/src/pages/JobDetail.vue:31 frontend/src/pages/Lesson.vue:66
|
||||
#: frontend/src/pages/Profile.vue:32 frontend/src/pages/Programs.vue:53
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
@@ -1756,11 +1765,6 @@ msgstr ""
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the enable_certification (Check) field in DocType 'LMS Course'
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
msgid "Enable Certification"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.py:20
|
||||
msgid "Enable Google API in Google Settings to send calendar invites for evaluations."
|
||||
msgstr ""
|
||||
@@ -1825,7 +1829,7 @@ msgid "Enrolled"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCard.vue:41
|
||||
#: frontend/src/components/CourseCardOverlay.vue:104
|
||||
#: frontend/src/components/CourseCardOverlay.vue:106
|
||||
#: frontend/src/pages/CourseDetail.vue:33
|
||||
msgid "Enrolled Students"
|
||||
msgstr ""
|
||||
@@ -1843,7 +1847,7 @@ msgstr ""
|
||||
msgid "Enrollment Count"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1740
|
||||
#: lms/lms/utils.py:1769
|
||||
msgid "Enrollment Failed"
|
||||
msgstr ""
|
||||
|
||||
@@ -1884,13 +1888,13 @@ msgstr ""
|
||||
#: frontend/src/components/Quiz.vue:589
|
||||
#: frontend/src/components/SettingDetails.vue:62
|
||||
#: frontend/src/pages/AssignmentForm.vue:139
|
||||
#: frontend/src/pages/AssignmentForm.vue:159 frontend/src/pages/Billing.vue:264
|
||||
#: frontend/src/pages/AssignmentForm.vue:159 frontend/src/pages/Billing.vue:263
|
||||
#: frontend/src/pages/QuizForm.vue:346 frontend/src/pages/QuizForm.vue:361
|
||||
#: frontend/src/pages/QuizSubmission.vue:147
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:181
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:180
|
||||
msgid "Error creating live class. Please try again. {0}"
|
||||
msgstr ""
|
||||
|
||||
@@ -1918,7 +1922,7 @@ msgstr ""
|
||||
msgid "Evaluation Request"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:78
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:77
|
||||
msgid "Evaluation end date cannot be less than the batch end date."
|
||||
msgstr ""
|
||||
|
||||
@@ -1932,15 +1936,17 @@ msgstr ""
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Certificate'
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Certificate Evaluation'
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Certificate Request'
|
||||
#. Label of the evaluator (Link) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/Modals/BatchCourseModal.vue:26
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:22
|
||||
#: frontend/src/pages/ProfileRoles.vue:22
|
||||
#: frontend/src/pages/CourseForm.vue:231 frontend/src/pages/ProfileRoles.vue:22
|
||||
#: lms/lms/doctype/batch_course/batch_course.json
|
||||
#: lms/lms/doctype/course_evaluator/course_evaluator.json
|
||||
#: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json
|
||||
#: lms/lms/doctype/lms_certificate/lms_certificate.json
|
||||
#: lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json
|
||||
#: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/templates/upcoming_evals.html:33
|
||||
msgid "Evaluator"
|
||||
msgstr ""
|
||||
@@ -1965,6 +1971,10 @@ msgstr ""
|
||||
msgid "Evaluator is Unavailable"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course/lms_course.py:62
|
||||
msgid "Evaluator is required for paid certificates."
|
||||
msgstr ""
|
||||
|
||||
#. Label of the event (Select) field in DocType 'LMS Badge'
|
||||
#. Label of the event (Link) field in DocType 'LMS Live Class'
|
||||
#: lms/lms/doctype/lms_badge/lms_badge.json
|
||||
@@ -2177,11 +2187,11 @@ msgstr ""
|
||||
msgid "Function"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:48
|
||||
#: frontend/src/pages/Billing.vue:43
|
||||
msgid "GST Amount"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:115
|
||||
#: frontend/src/pages/Billing.vue:110
|
||||
msgid "GST Number"
|
||||
msgstr ""
|
||||
|
||||
@@ -2204,10 +2214,12 @@ msgstr ""
|
||||
msgid "Generate Google Meet Link"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:73
|
||||
#: frontend/src/components/CourseCardOverlay.vue:75
|
||||
msgid "Get Certificate"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CertificationLinks.vue:24
|
||||
#: frontend/src/components/CertificationLinks.vue:40
|
||||
#: frontend/src/pages/CertifiedParticipants.vue:11
|
||||
msgid "Get Certified"
|
||||
msgstr ""
|
||||
@@ -2487,7 +2499,7 @@ msgstr ""
|
||||
|
||||
#. Label of the instructor_notes (Markdown Editor) field in DocType 'Course
|
||||
#. Lesson'
|
||||
#: frontend/src/pages/Lesson.vue:128 frontend/src/pages/LessonForm.vue:42
|
||||
#: frontend/src/pages/Lesson.vue:129 frontend/src/pages/LessonForm.vue:42
|
||||
#: lms/lms/doctype/course_lesson/course_lesson.json
|
||||
msgid "Instructor Notes"
|
||||
msgstr ""
|
||||
@@ -2580,6 +2592,7 @@ msgid "Issue Date"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the issued_on (Date) field in DocType 'LMS Badge Assignment'
|
||||
#: frontend/src/pages/CourseCertification.vue:27
|
||||
#: lms/lms/doctype/lms_badge_assignment/lms_badge_assignment.json
|
||||
msgid "Issued On"
|
||||
msgstr ""
|
||||
@@ -2655,7 +2668,7 @@ msgstr ""
|
||||
msgid "Join"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:45
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:51
|
||||
msgid "Join Call"
|
||||
msgstr ""
|
||||
|
||||
@@ -2956,7 +2969,7 @@ msgstr ""
|
||||
#. Group in Course Chapter's connections
|
||||
#. Label of the lessons (Data) field in DocType 'LMS Course'
|
||||
#: frontend/src/components/CourseCard.vue:32
|
||||
#: frontend/src/components/CourseCardOverlay.vue:97
|
||||
#: frontend/src/components/CourseCardOverlay.vue:99
|
||||
#: lms/lms/doctype/course_chapter/course_chapter.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
msgid "Lessons"
|
||||
@@ -3052,7 +3065,7 @@ msgstr ""
|
||||
#: frontend/src/components/AssignmentBlock.vue:13
|
||||
#: frontend/src/components/NoPermission.vue:28
|
||||
#: frontend/src/components/QuizBlock.vue:9 frontend/src/pages/Batch.vue:188
|
||||
#: frontend/src/pages/Lesson.vue:24
|
||||
#: frontend/src/pages/Lesson.vue:25
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
@@ -3087,8 +3100,8 @@ msgstr ""
|
||||
msgid "Make an Announcement"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:128
|
||||
msgid "Make sure to enter the right billing name as the same will be used in your invoice."
|
||||
#: frontend/src/pages/Billing.vue:123
|
||||
msgid "Make sure to enter the correct billing name as the same will be used in your invoice."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/BatchOverlay.vue:60
|
||||
@@ -3469,11 +3482,11 @@ msgstr ""
|
||||
msgid "New Sign Up"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:605
|
||||
#: lms/lms/utils.py:604
|
||||
msgid "New comment in batch {0}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:598
|
||||
#: lms/lms/utils.py:597
|
||||
msgid "New reply on the topic {0} in course {1}"
|
||||
msgstr ""
|
||||
|
||||
@@ -3482,7 +3495,7 @@ msgstr ""
|
||||
msgid "New {0}"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Quiz.vue:213 frontend/src/pages/Lesson.vue:84
|
||||
#: frontend/src/components/Quiz.vue:213 frontend/src/pages/Lesson.vue:85
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
@@ -3579,10 +3592,6 @@ msgstr ""
|
||||
msgid "No submissions"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:63
|
||||
msgid "No upcoming evaluations."
|
||||
msgstr ""
|
||||
|
||||
#: lms/templates/course_list.html:13
|
||||
msgid "No {0}"
|
||||
msgstr ""
|
||||
@@ -3684,7 +3693,7 @@ msgstr ""
|
||||
msgid "Only files of type {0} will be accepted."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseForm.vue:498 frontend/src/utils/index.js:533
|
||||
#: frontend/src/pages/CourseForm.vue:506 frontend/src/utils/index.js:533
|
||||
msgid "Only image file is allowed."
|
||||
msgstr ""
|
||||
|
||||
@@ -3750,10 +3759,6 @@ msgstr ""
|
||||
msgid "Order ID"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:26
|
||||
msgid "Ordered Item"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/JobDetail.vue:74
|
||||
msgid "Organisation"
|
||||
msgstr ""
|
||||
@@ -3763,7 +3768,7 @@ msgstr ""
|
||||
msgid "Organization"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:37
|
||||
#: frontend/src/pages/Billing.vue:32
|
||||
msgid "Original Amount"
|
||||
msgstr ""
|
||||
|
||||
@@ -3802,13 +3807,23 @@ msgstr ""
|
||||
msgid "Paid Batch"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the paid_certificate (Check) field in DocType 'LMS Course'
|
||||
#: frontend/src/pages/CourseForm.vue:217
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
msgid "Paid Certificate"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:133
|
||||
msgid "Paid Certificate after Evaluation"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the paid_course (Check) field in DocType 'LMS Course'
|
||||
#: frontend/src/pages/CourseForm.vue:214
|
||||
#: frontend/src/pages/CourseForm.vue:207
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
msgid "Paid Course"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:120
|
||||
#: frontend/src/pages/Billing.vue:115
|
||||
msgid "Pan Number"
|
||||
msgstr ""
|
||||
|
||||
@@ -3896,6 +3911,15 @@ msgstr ""
|
||||
msgid "Payment Settings"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:21
|
||||
msgid "Payment for "
|
||||
msgstr ""
|
||||
|
||||
#. Label of the payment_for_certificate (Check) field in DocType 'LMS Payment'
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
msgid "Payment for Certificate"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the payment_for_document (Dynamic Link) field in DocType 'LMS
|
||||
#. Payment'
|
||||
#: lms/lms/doctype/lms_payment/lms_payment.json
|
||||
@@ -3943,11 +3967,11 @@ msgstr ""
|
||||
msgid "Percentage/Status"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:104
|
||||
#: frontend/src/pages/Billing.vue:99
|
||||
msgid "Phone Number"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:148
|
||||
#: frontend/src/components/CourseCardOverlay.vue:169
|
||||
msgid "Please Login"
|
||||
msgstr ""
|
||||
|
||||
@@ -3967,11 +3991,11 @@ msgstr ""
|
||||
msgid "Please click on the following button to set your new password"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1863 lms/lms/utils.py:1867
|
||||
#: lms/lms/utils.py:1901 lms/lms/utils.py:1905
|
||||
msgid "Please complete the previous courses in the program to enroll in this course."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:188
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:187
|
||||
msgid "Please enable Zoom Settings to use this feature."
|
||||
msgstr ""
|
||||
|
||||
@@ -4004,7 +4028,7 @@ msgstr ""
|
||||
msgid "Please enter your answer"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:57
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:56
|
||||
msgid "Please install the Payments app to create a paid batches."
|
||||
msgstr ""
|
||||
|
||||
@@ -4012,7 +4036,7 @@ msgstr ""
|
||||
msgid "Please install the Payments app to create a paid courses."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:256
|
||||
#: frontend/src/pages/Billing.vue:255
|
||||
msgid "Please let us know where you heard about us from."
|
||||
msgstr ""
|
||||
|
||||
@@ -4037,6 +4061,10 @@ msgstr ""
|
||||
msgid "Please prepare well and be on time for the evaluations."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:69
|
||||
msgid "Please schedule an evaluation to get certified."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/LiveClassModal.vue:167
|
||||
msgid "Please select a date."
|
||||
msgstr ""
|
||||
@@ -4110,7 +4138,7 @@ msgstr ""
|
||||
msgid "Post"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:100
|
||||
#: frontend/src/pages/Billing.vue:95
|
||||
msgid "Postal Code"
|
||||
msgstr ""
|
||||
|
||||
@@ -4153,19 +4181,22 @@ msgstr ""
|
||||
msgid "Preview Video"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Lesson.vue:49
|
||||
#: frontend/src/pages/Lesson.vue:50
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the pricing_tab (Tab Break) field in DocType 'LMS Batch'
|
||||
#. Label of the pricing_tab (Tab Break) field in DocType 'LMS Course'
|
||||
#: frontend/src/pages/CourseForm.vue:208
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.json
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
#: lms/public/js/common_functions.js:368
|
||||
msgid "Pricing"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the pricing_tab (Tab Break) field in DocType 'LMS Course'
|
||||
#: frontend/src/pages/CourseForm.vue:201
|
||||
#: lms/lms/doctype/lms_course/lms_course.json
|
||||
msgid "Pricing and Certification"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the exception_country (Table MultiSelect) field in DocType 'LMS
|
||||
#. Settings'
|
||||
#: lms/lms/doctype/lms_settings/lms_settings.json
|
||||
@@ -4177,7 +4208,7 @@ msgstr ""
|
||||
msgid "Primary Subgroup"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:437
|
||||
#: lms/lms/utils.py:436
|
||||
msgid "Privacy Policy"
|
||||
msgstr ""
|
||||
|
||||
@@ -4192,7 +4223,7 @@ msgstr ""
|
||||
msgid "Private Information includes your Grade and Work Environment Preferences"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:134
|
||||
#: frontend/src/pages/Billing.vue:129
|
||||
msgid "Proceed to Payment"
|
||||
msgstr ""
|
||||
|
||||
@@ -4272,6 +4303,11 @@ msgstr ""
|
||||
msgid "Published On"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the purchased_certificate (Check) field in DocType 'LMS Enrollment'
|
||||
#: lms/lms/doctype/lms_enrollment/lms_enrollment.json
|
||||
msgid "Purchased Certificate"
|
||||
msgstr ""
|
||||
|
||||
#. Label of the question (Small Text) field in DocType 'Course Lesson'
|
||||
#. Label of the question (Text Editor) field in DocType 'LMS Assignment'
|
||||
#. Label of the question (Text Editor) field in DocType 'LMS Assignment
|
||||
@@ -4389,7 +4425,7 @@ msgstr ""
|
||||
#. Label of the rating (Rating) field in DocType 'LMS Certificate Evaluation'
|
||||
#. Label of the rating (Data) field in DocType 'LMS Course'
|
||||
#. Label of the rating (Rating) field in DocType 'LMS Course Review'
|
||||
#: frontend/src/components/CourseCardOverlay.vue:113
|
||||
#: frontend/src/components/CourseCardOverlay.vue:115
|
||||
#: frontend/src/components/Modals/Event.vue:86
|
||||
#: frontend/src/components/Modals/ReviewModal.vue:20
|
||||
#: lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json
|
||||
@@ -4538,19 +4574,19 @@ msgstr ""
|
||||
msgid "Route"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:127
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:126
|
||||
msgid "Row #{0} Date cannot be outside the batch duration."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:122
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:121
|
||||
msgid "Row #{0} End time cannot be outside the batch duration."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:104
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:103
|
||||
msgid "Row #{0} Start time cannot be greater than or equal to end time."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:113
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:112
|
||||
msgid "Row #{0} Start time cannot be outside the batch duration."
|
||||
msgstr ""
|
||||
|
||||
@@ -4604,7 +4640,7 @@ msgid "Schedule"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/Modals/EvaluationModal.vue:5
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:8
|
||||
#: frontend/src/components/UpcomingEvaluations.vue:14
|
||||
msgid "Schedule Evaluation"
|
||||
msgstr ""
|
||||
|
||||
@@ -4903,8 +4939,8 @@ msgstr ""
|
||||
msgid "Start Date:"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:63
|
||||
#: frontend/src/pages/Lesson.vue:21 frontend/src/pages/SCORMChapter.vue:28
|
||||
#: frontend/src/components/CourseCardOverlay.vue:65
|
||||
#: frontend/src/pages/Lesson.vue:22 frontend/src/pages/SCORMChapter.vue:28
|
||||
#: lms/templates/emails/lms_course_interest.html:9
|
||||
msgid "Start Learning"
|
||||
msgstr ""
|
||||
@@ -4943,7 +4979,7 @@ msgstr ""
|
||||
msgid "Startup Organization"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:88
|
||||
#: frontend/src/pages/Billing.vue:83
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
@@ -5072,7 +5108,7 @@ msgstr ""
|
||||
#: frontend/src/components/BatchCourses.vue:151
|
||||
#: frontend/src/components/BatchOverlay.vue:150
|
||||
#: frontend/src/components/BatchStudents.vue:324
|
||||
#: frontend/src/components/CourseCardOverlay.vue:168
|
||||
#: frontend/src/components/CourseCardOverlay.vue:189
|
||||
#: frontend/src/components/Modals/AnnouncementModal.vue:99
|
||||
#: frontend/src/components/Modals/AssessmentModal.vue:73
|
||||
#: frontend/src/components/Modals/BulkCertificates.vue:121
|
||||
@@ -5083,7 +5119,7 @@ msgstr ""
|
||||
#: frontend/src/components/Modals/Question.vue:264
|
||||
#: frontend/src/components/Modals/Question.vue:315
|
||||
#: frontend/src/pages/AssignmentForm.vue:155
|
||||
#: frontend/src/pages/CourseForm.vue:461 frontend/src/pages/ProgramForm.vue:229
|
||||
#: frontend/src/pages/CourseForm.vue:469 frontend/src/pages/ProgramForm.vue:229
|
||||
#: frontend/src/pages/ProgramForm.vue:251
|
||||
#: frontend/src/pages/ProgramForm.vue:272
|
||||
#: frontend/src/pages/ProgramForm.vue:298 frontend/src/pages/QuizForm.vue:339
|
||||
@@ -5105,7 +5141,7 @@ msgstr ""
|
||||
msgid "Sunday"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/api.py:999
|
||||
#: lms/lms/api.py:1012
|
||||
msgid "Suspicious pattern found in {0}: {1}"
|
||||
msgstr ""
|
||||
|
||||
@@ -5190,7 +5226,7 @@ msgstr ""
|
||||
msgid "Temporarily Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:436
|
||||
#: lms/lms/utils.py:435
|
||||
msgid "Terms of Use"
|
||||
msgstr ""
|
||||
|
||||
@@ -5226,7 +5262,7 @@ msgstr ""
|
||||
msgid "Thanks and Regards"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1772
|
||||
#: lms/lms/utils.py:1801
|
||||
msgid "The batch is full. Please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -5274,7 +5310,7 @@ msgstr ""
|
||||
msgid "There are no programs available at the moment. Keep an eye out, fresh learning experiences are on the way soon!"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:95
|
||||
#: lms/lms/doctype/lms_batch/lms_batch.py:94
|
||||
msgid "There are no seats available in this batch."
|
||||
msgstr ""
|
||||
|
||||
@@ -5317,11 +5353,11 @@ msgstr ""
|
||||
msgid "This class has ended"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:92
|
||||
#: frontend/src/components/CourseCardOverlay.vue:94
|
||||
msgid "This course has:"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1620
|
||||
#: lms/lms/utils.py:1644
|
||||
msgid "This course is free."
|
||||
msgstr ""
|
||||
|
||||
@@ -5329,11 +5365,7 @@ msgstr ""
|
||||
msgid "This is a chapter in the course {0}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/widgets/CourseOutline.html:62
|
||||
msgid "This lesson is not available for preview. As you are the Instructor of the course only you can see it."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Lesson.vue:15
|
||||
#: frontend/src/pages/Lesson.vue:16
|
||||
msgid "This lesson is not available for preview. Please enroll in the course to access it."
|
||||
msgstr ""
|
||||
|
||||
@@ -5467,7 +5499,7 @@ msgstr ""
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:1631
|
||||
#: lms/lms/utils.py:1655
|
||||
msgid "To join this batch, please contact the Administrator."
|
||||
msgstr ""
|
||||
|
||||
@@ -5479,7 +5511,7 @@ msgstr ""
|
||||
msgid "Too many users signed up recently, so the registration is disabled. Please try back in an hour"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:58
|
||||
#: frontend/src/pages/Billing.vue:53
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
@@ -5776,7 +5808,7 @@ msgstr ""
|
||||
msgid "When a course gets submitted for review, it will be listed here."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Billing.vue:111
|
||||
#: frontend/src/pages/Billing.vue:106
|
||||
msgid "Where did you hear about us?"
|
||||
msgstr ""
|
||||
|
||||
@@ -5825,6 +5857,10 @@ msgstr ""
|
||||
msgid "You already have an evaluation on {0} at {1} for the course {2}."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/CourseCertification.vue:14
|
||||
msgid "You are already certified for this course. Click on the card below to open your certificate."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/api.py:224
|
||||
msgid "You are already enrolled for this batch."
|
||||
msgstr ""
|
||||
@@ -5907,6 +5943,10 @@ msgstr ""
|
||||
msgid "You have already exceeded the maximum number of attempts allowed for this quiz."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/api.py:237
|
||||
msgid "You have already purchased the certificate for this course."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/doctype/lms_course_review/lms_course_review.py:17
|
||||
msgid "You have already reviewed this course"
|
||||
msgstr ""
|
||||
@@ -5915,7 +5955,7 @@ msgstr ""
|
||||
msgid "You have been enrolled in this batch"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:169
|
||||
#: frontend/src/components/CourseCardOverlay.vue:190
|
||||
msgid "You have been enrolled in this course"
|
||||
msgstr ""
|
||||
|
||||
@@ -5939,7 +5979,7 @@ msgstr ""
|
||||
msgid "You have opted to be notified for this course. You will receive an email when the course becomes available."
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/components/CourseCardOverlay.vue:149
|
||||
#: frontend/src/components/CourseCardOverlay.vue:170
|
||||
msgid "You need to login first to enroll for this course"
|
||||
msgstr ""
|
||||
|
||||
@@ -6025,7 +6065,7 @@ msgstr ""
|
||||
msgid "cancel your application"
|
||||
msgstr ""
|
||||
|
||||
#: frontend/src/pages/Lesson.vue:177
|
||||
#: frontend/src/pages/Lesson.vue:178
|
||||
msgid "completed"
|
||||
msgstr ""
|
||||
|
||||
@@ -6085,7 +6125,7 @@ msgstr ""
|
||||
msgid "you can"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/api.py:789 lms/lms/api.py:797
|
||||
#: lms/lms/api.py:802 lms/lms/api.py:810
|
||||
msgid "{0} Settings not found"
|
||||
msgstr ""
|
||||
|
||||
@@ -6125,7 +6165,7 @@ msgstr ""
|
||||
msgid "{0} is your evaluator"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:682
|
||||
#: lms/lms/utils.py:681
|
||||
msgid "{0} mentioned you in a comment"
|
||||
msgstr ""
|
||||
|
||||
@@ -6133,11 +6173,11 @@ msgstr ""
|
||||
msgid "{0} mentioned you in a comment in your batch."
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:635 lms/lms/utils.py:641
|
||||
#: lms/lms/utils.py:634 lms/lms/utils.py:640
|
||||
msgid "{0} mentioned you in a comment in {1}"
|
||||
msgstr ""
|
||||
|
||||
#: lms/lms/utils.py:458
|
||||
#: lms/lms/utils.py:457
|
||||
msgid "{0}k"
|
||||
msgstr ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user