Merge pull request #1352 from frappe/develop

chore: merge 'develop' into 'main'
This commit is contained in:
Jannat Patel
2025-03-03 15:38:08 +05:30
committed by GitHub
16 changed files with 3303 additions and 3857 deletions

View File

@@ -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 }}

View File

@@ -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",

View File

@@ -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"
/>

View File

@@ -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'

View 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>

View File

@@ -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>

View File

@@ -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()

View File

@@ -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>

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1 @@
__version__ = "2.23.0"
__version__ = "2.24.0"

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -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

View File

@@ -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 ""

3071
yarn.lock

File diff suppressed because it is too large Load Diff