From 8b00bec49c54fbe9ac8d80b006aeb280c83d869e Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Fri, 14 Feb 2025 20:04:37 +0530 Subject: [PATCH 01/40] fix: students should be able to access private batch if they are enrolled --- frontend/src/components/BatchOverlay.vue | 4 ++-- lms/lms/utils.py | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/BatchOverlay.vue b/frontend/src/components/BatchOverlay.vue index 06ec0b0a..be4f7a75 100644 --- a/frontend/src/components/BatchOverlay.vue +++ b/frontend/src/components/BatchOverlay.vue @@ -2,7 +2,7 @@
{{ seats_left }} @@ -14,7 +14,7 @@
{{ __('Sold Out') }}
diff --git a/lms/lms/utils.py b/lms/lms/utils.py index 5dcccd16..04b85072 100644 --- a/lms/lms/utils.py +++ b/lms/lms/utils.py @@ -1194,7 +1194,10 @@ def get_neighbour_lesson(course, chapter, lesson): @frappe.whitelist(allow_guest=True) def get_batch_details(batch): - if not frappe.db.get_value("LMS Batch", batch, "published") and has_student_role(): + batch_students = frappe.get_all( + "LMS Batch Enrollment", {"batch": batch}, pluck="member" + ) + if not frappe.db.get_value("LMS Batch", batch, "published") and has_student_role() and frappe.session.user not in batch_students: return batch_details = frappe.db.get_value( @@ -1229,9 +1232,7 @@ def get_batch_details(batch): batch_details.courses = frappe.get_all( "Batch Course", filters={"parent": batch}, fields=["course", "title", "evaluator"] ) - batch_details.students = frappe.get_all( - "LMS Batch Enrollment", {"batch": batch}, pluck="member" - ) + batch_details.students = batch_students if batch_details.paid_batch and batch_details.start_date >= getdate(): batch_details.amount, batch_details.currency = check_multicurrency( From 837d050628a25c86ad7e9cac5909bb96168b24db Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Fri, 14 Feb 2025 20:10:32 +0530 Subject: [PATCH 02/40] fix: students should be able to access private batch if they are enrolled --- lms/lms/utils.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lms/lms/utils.py b/lms/lms/utils.py index 04b85072..8ccbd4a0 100644 --- a/lms/lms/utils.py +++ b/lms/lms/utils.py @@ -1197,7 +1197,11 @@ def get_batch_details(batch): batch_students = frappe.get_all( "LMS Batch Enrollment", {"batch": batch}, pluck="member" ) - if not frappe.db.get_value("LMS Batch", batch, "published") and has_student_role() and frappe.session.user not in batch_students: + if ( + not frappe.db.get_value("LMS Batch", batch, "published") + and has_student_role() + and frappe.session.user not in batch_students + ): return batch_details = frappe.db.get_value( From c2b12aa65f44e777c8b9be79dfb86fc6dcfd04da Mon Sep 17 00:00:00 2001 From: frappe-pr-bot Date: Fri, 14 Feb 2025 16:04:13 +0000 Subject: [PATCH 03/40] chore: update POT file --- lms/locale/main.pot | 405 +++++++++++++++++++++++--------------------- 1 file changed, 215 insertions(+), 190 deletions(-) diff --git a/lms/locale/main.pot b/lms/locale/main.pot index 72fe300d..675185dc 100644 --- a/lms/locale/main.pot +++ b/lms/locale/main.pot @@ -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-07 16:03+0000\n" -"PO-Revision-Date: 2025-02-07 16:03+0000\n" +"POT-Creation-Date: 2025-02-14 16:04+0000\n" +"PO-Revision-Date: 2025-02-14 16:04+0000\n" "Last-Translator: jannat@frappe.io\n" "Language-Team: jannat@frappe.io\n" "MIME-Version: 1.0\n" @@ -73,7 +73,7 @@ msgstr "" msgid "About" msgstr "" -#: frontend/src/pages/Batch.vue:96 +#: frontend/src/pages/Batch.vue:97 msgid "About this batch" msgstr "" @@ -103,7 +103,7 @@ msgstr "" #: frontend/src/components/Assessments.vue:11 #: frontend/src/components/BatchCourses.vue:11 -#: frontend/src/components/BatchStudents.vue:95 +#: frontend/src/components/BatchStudents.vue:117 #: frontend/src/components/Categories.vue:26 #: frontend/src/components/LiveClass.vue:11 #: frontend/src/components/Members.vue:43 frontend/src/pages/ProgramForm.vue:30 @@ -117,7 +117,7 @@ msgstr "" msgid "Add Chapter" msgstr "" -#: frontend/src/components/CourseOutline.vue:124 +#: frontend/src/components/CourseOutline.vue:129 msgid "Add Lesson" msgstr "" @@ -137,7 +137,7 @@ msgstr "" msgid "Add a Student" msgstr "" -#: frontend/src/components/OnboardingBanner.vue:50 +#: frontend/src/components/OnboardingBanner.vue:56 msgid "Add a chapter" msgstr "" @@ -149,7 +149,7 @@ msgstr "" msgid "Add a keyword and then press enter" msgstr "" -#: frontend/src/components/OnboardingBanner.vue:73 +#: frontend/src/components/OnboardingBanner.vue:81 msgid "Add a lesson" msgstr "" @@ -218,7 +218,7 @@ msgstr "" msgid "All Batches" msgstr "" -#: frontend/src/pages/CertifiedParticipants.vue:12 +#: frontend/src/pages/CertifiedParticipants.vue:20 msgid "All Certified Participants" msgstr "" @@ -266,10 +266,9 @@ msgstr "" msgid "Already Registered" msgstr "" -#. Label of the amount (Currency) field in DocType 'Web Form' #. Label of the amount (Currency) field in DocType 'LMS Batch' #. Label of the amount (Currency) field in DocType 'LMS Payment' -#: frontend/src/pages/BatchForm.vue:221 lms/fixtures/custom_field.json +#: frontend/src/pages/BatchForm.vue:221 #: lms/lms/doctype/lms_batch/lms_batch.json #: lms/lms/doctype/lms_payment/lms_payment.json #: lms/public/js/common_functions.js:379 @@ -284,17 +283,7 @@ msgstr "" msgid "Amount (USD)" msgstr "" -#. Label of the amount_based_on_field (Check) field in DocType 'Web Form' -#: lms/fixtures/custom_field.json -msgid "Amount Based On Field" -msgstr "" - -#. Label of the amount_field (Select) field in DocType 'Web Form' -#: lms/fixtures/custom_field.json -msgid "Amount Field" -msgstr "" - -#: lms/lms/doctype/lms_batch/lms_batch.py:75 +#: lms/lms/doctype/lms_batch/lms_batch.py:61 msgid "Amount and currency are required for paid batches." msgstr "" @@ -319,6 +308,7 @@ msgstr "" #. Label of the answer (Text Editor) field in DocType 'LMS Assignment #. Submission' #. Label of the answer (Code) field in DocType 'LMS Exercise' +#: frontend/src/pages/QuizSubmission.vue:61 #: lms/lms/doctype/lms_assignment/lms_assignment.json #: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json #: lms/lms/doctype/lms_exercise/lms_exercise.json @@ -333,7 +323,7 @@ msgstr "" msgid "Appears when the batch URL is shared on any online platform" msgstr "" -#: frontend/src/pages/JobDetail.vue:131 +#: frontend/src/pages/JobDetail.vue:121 msgid "Applications Received" msgstr "" @@ -400,14 +390,14 @@ msgstr "" msgid "Assessment added successfully" msgstr "" -#: lms/lms/doctype/lms_batch/lms_batch.py:85 +#: lms/lms/doctype/lms_batch/lms_batch.py:71 msgid "Assessment {0} has already been added to this batch." msgstr "" #. Label of the show_assessments (Check) field in DocType 'LMS Settings' #: frontend/src/components/Assessments.vue:5 -#: frontend/src/components/BatchStudents.vue:46 -#: frontend/src/components/BatchStudents.vue:79 +#: frontend/src/components/BatchStudents.vue:68 +#: frontend/src/components/BatchStudents.vue:101 #: lms/lms/doctype/lms_settings/lms_settings.json #: lms/templates/assessments.html:3 msgid "Assessments" @@ -487,7 +477,7 @@ msgstr "" msgid "Auto Recording" msgstr "" -#: frontend/src/components/CourseCard.vue:52 +#: frontend/src/components/CourseCard.vue:50 #: frontend/src/pages/CourseDetail.vue:20 msgid "Average Rating" msgstr "" @@ -516,11 +506,13 @@ msgstr "" msgid "Badge Image" msgstr "" +#. Label of the batch (Link) field in DocType 'LMS Batch Enrollment' #. Label of the batch (Link) field in DocType 'LMS Batch Feedback' #. Label of the batch_name (Link) field in DocType 'LMS Certificate' #. Label of the batch_name (Link) field in DocType 'LMS Certificate Request' #. Label of the batch_name (Link) field in DocType 'LMS Live Class' #: frontend/src/components/Modals/Event.vue:32 +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.json #: lms/lms/doctype/lms_batch_feedback/lms_batch_feedback.json #: lms/lms/doctype/lms_certificate/lms_certificate.json #: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json @@ -553,7 +545,7 @@ msgstr "" #: frontend/src/pages/BatchForm.vue:104 #: lms/lms/doctype/lms_batch/lms_batch.json #: lms/public/js/common_functions.js:349 -#: lms/templates/emails/batch_confirmation.html:30 +#: lms/templates/emails/batch_confirmation.html:24 msgid "Batch Details" msgstr "" @@ -594,15 +586,10 @@ msgstr "" msgid "Batch Settings" msgstr "" -#: lms/templates/emails/batch_confirmation.html:17 +#: lms/templates/emails/batch_confirmation.html:11 msgid "Batch Start Date:" msgstr "" -#. Name of a DocType -#: lms/lms/doctype/batch_student/batch_student.json -msgid "Batch Student" -msgstr "" - #. Label of the batch_title (Data) field in DocType 'LMS Certificate' #. Label of the batch_title (Data) field in DocType 'LMS Certificate Request' #: lms/lms/doctype/lms_certificate/lms_certificate.json @@ -614,7 +601,7 @@ msgstr "" msgid "Batch Updated" msgstr "" -#: lms/lms/doctype/lms_batch/lms_batch.py:46 +#: lms/lms/doctype/lms_batch/lms_batch.py:42 msgid "Batch end date cannot be before the batch start date" msgstr "" @@ -631,7 +618,7 @@ msgstr "" msgid "Begin Date" msgstr "" -#: lms/templates/emails/batch_confirmation.html:37 +#: lms/templates/emails/batch_confirmation.html:31 #: lms/templates/emails/certification.html:20 msgid "Best Regards" msgstr "" @@ -673,16 +660,6 @@ msgstr "" msgid "Business Owner" msgstr "" -#. Label of the payment_button_help (Text) field in DocType 'Web Form' -#: lms/fixtures/custom_field.json -msgid "Button Help" -msgstr "" - -#. Label of the payment_button_label (Data) field in DocType 'Web Form' -#: lms/fixtures/custom_field.json -msgid "Button Label" -msgstr "" - #: frontend/src/components/CourseCardOverlay.vue:45 msgid "Buy this course" msgstr "" @@ -718,10 +695,9 @@ msgstr "" #. Label of the category (Data) field in DocType 'LMS Category' #. Label of the category (Link) field in DocType 'LMS Course' #: frontend/src/pages/BatchForm.vue:202 frontend/src/pages/Batches.vue:49 -#: frontend/src/pages/CertifiedParticipants.vue:29 +#: frontend/src/pages/CertifiedParticipants.vue:37 #: frontend/src/pages/CourseForm.vue:147 frontend/src/pages/Courses.vue:17 -#: frontend/src/pages/JobDetail.vue:102 -#: lms/lms/doctype/lms_batch/lms_batch.json +#: frontend/src/pages/JobDetail.vue:96 lms/lms/doctype/lms_batch/lms_batch.json #: lms/lms/doctype/lms_category/lms_category.json #: lms/lms/doctype/lms_course/lms_course.json #: lms/public/js/common_functions.js:316 lms/templates/signup-form.html:22 @@ -784,8 +760,12 @@ msgstr "" msgid "Certification Name" msgstr "" +#: frontend/src/components/BatchStudents.vue:36 +msgid "Certified" +msgstr "" + #. Label of the certified_participants (Check) field in DocType 'LMS Settings' -#: frontend/src/pages/CertifiedParticipants.vue:153 +#: frontend/src/pages/CertifiedParticipants.vue:161 #: lms/lms/doctype/lms_settings/lms_settings.json msgid "Certified Participants" msgstr "" @@ -849,7 +829,7 @@ msgstr "" msgid "Choices" msgstr "" -#: frontend/src/components/Quiz.vue:589 lms/templates/quiz/quiz.html:53 +#: frontend/src/components/Quiz.vue:592 lms/templates/quiz/quiz.html:53 msgid "Choose all answers that apply" msgstr "" @@ -857,7 +837,7 @@ msgstr "" msgid "Choose an icon" msgstr "" -#: frontend/src/components/Quiz.vue:590 lms/templates/quiz/quiz.html:53 +#: frontend/src/components/Quiz.vue:593 lms/templates/quiz/quiz.html:53 msgid "Choose one answer" msgstr "" @@ -1039,6 +1019,14 @@ msgstr "" msgid "Complete Sign Up" msgstr "" +#: lms/templates/emails/payment_reminder.html:15 +msgid "Complete Your Enrollment" +msgstr "" + +#: lms/lms/doctype/lms_payment/lms_payment.py:40 +msgid "Complete Your Enrollment - Don't miss out!" +msgstr "" + #. Option for the 'Status' (Select) field in DocType 'Cohort' #. Option for the 'Stage' (Select) field in DocType 'LMS Batch Old' #: lms/lms/doctype/cohort/cohort.json @@ -1047,7 +1035,7 @@ msgstr "" msgid "Completed" msgstr "" -#: frontend/src/components/BatchStudents.vue:345 +#: frontend/src/components/BatchStudents.vue:369 msgid "Completed by Students" msgstr "" @@ -1055,7 +1043,7 @@ msgstr "" msgid "Completion Certificate" msgstr "" -#: frontend/src/pages/Statistics.vue:58 +#: frontend/src/pages/Statistics.vue:66 msgid "Completions" msgstr "" @@ -1072,9 +1060,9 @@ msgstr "" msgid "Condition must be valid python code." msgstr "" -#. Label of the confirmation_email_sent (Check) field in DocType 'Batch -#. Student' -#: lms/lms/doctype/batch_student/batch_student.json +#. Label of the confirmation_email_sent (Check) field in DocType 'LMS Batch +#. Enrollment' +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.json msgid "Confirmation Email Sent" msgstr "" @@ -1303,7 +1291,7 @@ msgstr "" msgid "Course added to program" msgstr "" -#: lms/lms/doctype/lms_batch/lms_batch.py:350 +#: lms/lms/doctype/lms_batch/lms_batch.py:273 msgid "Course already added to the batch." msgstr "" @@ -1315,7 +1303,7 @@ msgstr "" msgid "Course moved successfully" msgstr "" -#: lms/lms/doctype/lms_batch/lms_batch.py:64 +#: lms/lms/doctype/lms_batch/lms_batch.py:50 #: lms/lms/doctype/lms_program/lms_program.py:19 msgid "Course {0} has already been added to this batch." msgstr "" @@ -1324,12 +1312,12 @@ msgstr "" #. Label of the show_courses (Check) field in DocType 'LMS Settings' #. Label of the courses (Check) field in DocType 'LMS Settings' #: frontend/src/components/BatchCourses.vue:5 -#: frontend/src/components/BatchOverlay.vue:23 -#: frontend/src/components/BatchStudents.vue:32 -#: frontend/src/components/BatchStudents.vue:70 -#: frontend/src/components/Modals/BatchStudentProgress.vue:60 -#: frontend/src/pages/BatchDetail.vue:19 frontend/src/pages/BatchDetail.vue:68 -#: frontend/src/pages/Courses.vue:8 frontend/src/pages/Statistics.vue:19 +#: frontend/src/components/BatchOverlay.vue:29 +#: frontend/src/components/BatchStudents.vue:52 +#: 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/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 msgid "Courses" @@ -1366,7 +1354,7 @@ msgstr "" msgid "Create LMS Certificate Evaluation" msgstr "" -#: frontend/src/pages/Courses.vue:132 lms/templates/onboarding_header.html:19 +#: frontend/src/pages/Courses.vue:136 lms/templates/onboarding_header.html:19 msgid "Create a Course" msgstr "" @@ -1374,7 +1362,7 @@ msgstr "" msgid "Create a Live Class" msgstr "" -#: frontend/src/components/OnboardingBanner.vue:27 +#: frontend/src/components/OnboardingBanner.vue:30 msgid "Create a course" msgstr "" @@ -1386,12 +1374,11 @@ msgstr "" msgid "Created" msgstr "" -#. Label of the currency (Link) field in DocType 'Web Form' #. 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:229 frontend/src/pages/CourseForm.vue:226 -#: lms/fixtures/custom_field.json lms/lms/doctype/lms_batch/lms_batch.json +#: 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:387 @@ -1483,8 +1470,8 @@ msgstr "" msgid "Degree Type" msgstr "" -#: frontend/src/components/CourseOutline.vue:235 -#: frontend/src/components/CourseOutline.vue:293 +#: frontend/src/components/CourseOutline.vue:240 +#: frontend/src/components/CourseOutline.vue:298 #: frontend/src/pages/CourseForm.vue:15 frontend/src/pages/CourseForm.vue:474 msgid "Delete" msgstr "" @@ -1497,11 +1484,11 @@ msgstr "" msgid "Delete Course" msgstr "" -#: frontend/src/components/CourseOutline.vue:287 +#: frontend/src/components/CourseOutline.vue:292 msgid "Delete this chapter?" msgstr "" -#: frontend/src/components/CourseOutline.vue:229 +#: frontend/src/components/CourseOutline.vue:234 msgid "Delete this lesson?" msgstr "" @@ -1509,11 +1496,11 @@ msgstr "" msgid "Deleting the course will also delete all its chapters and lessons. Are you sure you want to delete this course?" msgstr "" -#: frontend/src/components/CourseOutline.vue:288 +#: frontend/src/components/CourseOutline.vue:293 msgid "Deleting this chapter will also delete all its lessons and permanently remove it from the course. This action cannot be undone. Are you sure you want to continue?" msgstr "" -#: frontend/src/components/CourseOutline.vue:230 +#: frontend/src/components/CourseOutline.vue:235 msgid "Deleting this lesson will permanently remove it from the course. This action cannot be undone. Are you sure you want to continue?" msgstr "" @@ -1576,7 +1563,7 @@ msgid "Discard" msgstr "" #. Label of the show_discussions (Check) field in DocType 'LMS Settings' -#: frontend/src/pages/Batch.vue:81 +#: frontend/src/pages/Batch.vue:82 #: lms/lms/doctype/lms_settings/lms_settings.json msgid "Discussions" msgstr "" @@ -1590,6 +1577,10 @@ msgstr "" msgid "Document" msgstr "" +#: lms/templates/emails/payment_reminder.html:11 +msgid "Don’t miss this opportunity to enhance your skills. Click below to complete your enrollment" +msgstr "" + #. Label of the dream_companies (Data) field in DocType 'User' #: lms/fixtures/custom_field.json msgid "Dream Companies" @@ -1628,7 +1619,7 @@ msgstr "" msgid "E-mail" msgstr "" -#: frontend/src/components/BatchOverlay.vue:93 +#: frontend/src/components/BatchOverlay.vue:99 #: frontend/src/components/CourseCardOverlay.vue:86 #: frontend/src/components/Modals/ChapterModal.vue:9 #: frontend/src/pages/JobDetail.vue:31 frontend/src/pages/Lesson.vue:65 @@ -1757,7 +1748,7 @@ msgstr "" msgid "End Time" msgstr "" -#: frontend/src/components/BatchOverlay.vue:80 +#: frontend/src/components/BatchOverlay.vue:86 msgid "Enroll Now" msgstr "" @@ -1765,7 +1756,7 @@ msgstr "" msgid "Enrolled" msgstr "" -#: frontend/src/components/CourseCard.vue:43 +#: frontend/src/components/CourseCard.vue:41 #: frontend/src/components/CourseCardOverlay.vue:104 #: frontend/src/pages/CourseDetail.vue:33 msgid "Enrolled Students" @@ -1775,8 +1766,8 @@ msgstr "" msgid "Enrolled successfully" msgstr "" -#: lms/lms/doctype/lms_batch/lms_batch.py:108 -msgid "Enrollment Confirmation for the Next Training Batch" +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.py:86 +msgid "Enrollment Confirmation for {0}" msgstr "" #: lms/lms/web_template/lms_statistics/lms_statistics.html:14 @@ -1784,14 +1775,14 @@ msgstr "" msgid "Enrollment Count" msgstr "" -#: lms/lms/utils.py:1693 +#: lms/lms/utils.py:1728 msgid "Enrollment Failed" msgstr "" #. Label of the enrollments (Data) field in DocType 'LMS Course' #. Label of a chart in the LMS Workspace #. Label of a shortcut in the LMS Workspace -#: frontend/src/pages/Statistics.vue:45 +#: frontend/src/pages/Statistics.vue:51 #: lms/lms/doctype/lms_course/lms_course.json lms/lms/workspace/lms/lms.json msgid "Enrollments" msgstr "" @@ -1821,12 +1812,12 @@ msgstr "" #: frontend/src/components/Modals/Question.vue:249 #: frontend/src/components/Modals/Question.vue:269 #: frontend/src/components/Modals/Question.vue:326 -#: frontend/src/components/Modals/StudentModal.vue:69 +#: frontend/src/components/Modals/StudentModal.vue:67 #: 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/QuizForm.vue:346 frontend/src/pages/QuizForm.vue:361 -#: frontend/src/pages/QuizSubmission.vue:141 +#: frontend/src/pages/QuizSubmission.vue:147 msgid "Error" msgstr "" @@ -1854,7 +1845,7 @@ msgstr "" msgid "Evaluation Request" msgstr "" -#: lms/lms/doctype/lms_batch/lms_batch.py:92 +#: lms/lms/doctype/lms_batch/lms_batch.py:78 msgid "Evaluation end date cannot be less than the batch end date." msgstr "" @@ -2132,6 +2123,10 @@ msgstr "" msgid "Get Certificate" msgstr "" +#: frontend/src/pages/CertifiedParticipants.vue:11 +msgid "Get Certified" +msgstr "" + #: lms/templates/onboarding_header.html:8 msgid "Get Started" msgstr "" @@ -2207,6 +2202,10 @@ msgstr "" msgid "Hey," msgstr "" +#: lms/templates/emails/payment_reminder.html:2 +msgid "Hi" +msgstr "" + #: lms/templates/emails/lms_course_interest.html:3 msgid "Hi {0}," msgstr "" @@ -2274,7 +2273,11 @@ msgstr "" msgid "If you fail to do so, the quiz will be automatically submitted when the timer ends." msgstr "" -#: lms/templates/emails/batch_confirmation.html:33 +#: lms/templates/emails/payment_reminder.html:19 +msgid "If you have any questions or need assistance, feel free to reach out to our support team." +msgstr "" + +#: lms/templates/emails/batch_confirmation.html:27 msgid "If you have any questions or require assistance, feel free to contact us." msgstr "" @@ -2608,6 +2611,11 @@ msgstr "" msgid "LMS Batch" msgstr "" +#. Name of a DocType +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.json +msgid "LMS Batch Enrollment" +msgstr "" + #. Name of a DocType #: lms/lms/doctype/lms_batch_feedback/lms_batch_feedback.json msgid "LMS Batch Feedback" @@ -2772,6 +2780,7 @@ msgstr "" #: lms/lms/doctype/lms_assignment/lms_assignment.json #: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json #: lms/lms/doctype/lms_badge_assignment/lms_badge_assignment.json +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.json #: lms/lms/doctype/lms_batch_feedback/lms_batch_feedback.json #: lms/lms/doctype/lms_certificate/lms_certificate.json #: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json @@ -2851,7 +2860,7 @@ msgstr "" #. Label of the lessons (Table) field in DocType 'Course Chapter' #. Group in Course Chapter's connections #. Label of the lessons (Data) field in DocType 'LMS Course' -#: frontend/src/components/CourseCard.vue:34 +#: frontend/src/components/CourseCard.vue:32 #: frontend/src/components/CourseCardOverlay.vue:97 #: lms/lms/doctype/course_chapter/course_chapter.json #: lms/lms/doctype/lms_course/lms_course.json @@ -2917,9 +2926,9 @@ msgstr "" msgid "LiveCode URL" msgstr "" -#: frontend/src/components/Members.vue:106 +#: frontend/src/components/Members.vue:108 #: frontend/src/pages/Assignments.vue:71 frontend/src/pages/Batches.vue:88 -#: frontend/src/pages/CertifiedParticipants.vue:71 +#: frontend/src/pages/CertifiedParticipants.vue:79 #: frontend/src/pages/QuizSubmissionList.vue:39 #: frontend/src/pages/Quizzes.vue:51 msgid "Load More" @@ -2933,7 +2942,7 @@ msgstr "" #. Label of the location (Data) field in DocType 'Job Opportunity' #. Label of the location (Data) field in DocType 'Education Detail' #. Label of the location (Data) field in DocType 'Work Experience' -#: frontend/src/pages/JobCreation.vue:26 frontend/src/pages/JobDetail.vue:89 +#: frontend/src/pages/JobCreation.vue:26 frontend/src/pages/JobDetail.vue:85 #: lms/job/doctype/job_opportunity/job_opportunity.json #: lms/lms/doctype/education_detail/education_detail.json #: lms/lms/doctype/work_experience/work_experience.json @@ -2947,7 +2956,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:178 +#: frontend/src/components/QuizBlock.vue:9 frontend/src/pages/Batch.vue:185 #: frontend/src/pages/Lesson.vue:24 msgid "Login" msgstr "" @@ -2956,6 +2965,10 @@ msgstr "" msgid "Login to apply" msgstr "" +#: lms/templates/emails/payment_reminder.html:23 +msgid "Looking forward to seeing you enrolled!" +msgstr "" + #. Label of the default_home (Check) field in DocType 'LMS Settings' #: lms/lms/doctype/lms_settings/lms_settings.json msgid "Make LMS the default home" @@ -2970,7 +2983,7 @@ msgstr "" msgid "Make sure to enter the right billing name as the same will be used in your invoice." msgstr "" -#: frontend/src/components/BatchOverlay.vue:54 +#: frontend/src/components/BatchOverlay.vue:60 msgid "Manage Batch" msgstr "" @@ -3006,7 +3019,7 @@ msgstr "" #: frontend/src/components/Modals/Question.vue:50 #: frontend/src/components/Modals/Question.vue:99 #: frontend/src/components/Quiz.vue:96 frontend/src/pages/QuizForm.vue:390 -#: frontend/src/pages/QuizSubmission.vue:59 +#: frontend/src/pages/QuizSubmission.vue:65 #: lms/lms/doctype/lms_quiz_question/lms_quiz_question.json #: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json #: lms/templates/quiz/quiz.html:59 @@ -3018,7 +3031,7 @@ msgid "Marks for question number {0} cannot be greater than the marks allotted f msgstr "" #. Label of the marks_out_of (Int) field in DocType 'LMS Quiz Result' -#: frontend/src/pages/QuizSubmission.vue:62 +#: frontend/src/pages/QuizSubmission.vue:68 #: lms/lms/doctype/lms_quiz_result/lms_quiz_result.json msgid "Marks out of" msgstr "" @@ -3044,7 +3057,7 @@ msgstr "" msgid "Medium ID" msgstr "" -#: lms/templates/emails/batch_confirmation.html:21 +#: lms/templates/emails/batch_confirmation.html:15 msgid "Medium:" msgstr "" @@ -3052,6 +3065,7 @@ msgstr "" #. Label of the member (Link) field in DocType 'Exercise Submission' #. Label of the member (Link) field in DocType 'LMS Assignment Submission' #. Label of the member (Link) field in DocType 'LMS Badge Assignment' +#. Label of the member (Link) field in DocType 'LMS Batch Enrollment' #. Label of the member (Link) field in DocType 'LMS Batch Feedback' #. Label of the member (Link) field in DocType 'LMS Certificate' #. Label of the member (Link) field in DocType 'LMS Certificate Evaluation' @@ -3070,6 +3084,7 @@ msgstr "" #: lms/lms/doctype/exercise_submission/exercise_submission.json #: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json #: lms/lms/doctype/lms_badge_assignment/lms_badge_assignment.json +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.json #: lms/lms/doctype/lms_batch_feedback/lms_batch_feedback.json #: lms/lms/doctype/lms_certificate/lms_certificate.json #: lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json @@ -3104,6 +3119,7 @@ msgstr "" #. Label of the member_name (Data) field in DocType 'LMS Assignment Submission' #. Label of the member_name (Data) field in DocType 'LMS Badge Assignment' +#. Label of the member_name (Data) field in DocType 'LMS Batch Enrollment' #. Label of the member_name (Data) field in DocType 'LMS Batch Feedback' #. Label of the member_name (Data) field in DocType 'LMS Certificate' #. Label of the member_name (Data) field in DocType 'LMS Certificate @@ -3115,6 +3131,7 @@ msgstr "" #. Label of the member_name (Data) field in DocType 'LMS Quiz Submission' #: lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.json #: lms/lms/doctype/lms_badge_assignment/lms_badge_assignment.json +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.json #: lms/lms/doctype/lms_batch_feedback/lms_batch_feedback.json #: lms/lms/doctype/lms_certificate/lms_certificate.json #: lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json @@ -3138,10 +3155,19 @@ msgstr "" msgid "Member Type" msgstr "" +#. Label of the member_username (Data) field in DocType 'LMS Batch Enrollment' +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.json +msgid "Member Username" +msgstr "" + #: frontend/src/pages/ProgramForm.vue:251 msgid "Member added to program" msgstr "" +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.py:25 +msgid "Member already enrolled in this batch" +msgstr "" + #: lms/lms/doctype/lms_program/lms_program.py:29 msgid "Member {0} has already been added to this batch." msgstr "" @@ -3214,7 +3240,7 @@ msgstr "" msgid "Milestone" msgstr "" -#: frontend/src/pages/Statistics.vue:71 +#: frontend/src/pages/Statistics.vue:81 msgid "Milestones" msgstr "" @@ -3228,6 +3254,7 @@ msgstr "" #: lms/lms/doctype/lms_assignment/lms_assignment.json #: lms/lms/doctype/lms_badge_assignment/lms_badge_assignment.json #: lms/lms/doctype/lms_batch/lms_batch.json +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.json #: lms/lms/doctype/lms_category/lms_category.json #: lms/lms/doctype/lms_certificate/lms_certificate.json #: lms/lms/doctype/lms_certificate_request/lms_certificate_request.json @@ -3245,11 +3272,11 @@ msgstr "" msgid "Modified By" msgstr "" -#: lms/lms/api.py:211 +#: lms/lms/api.py:206 msgid "Module Name is incorrect or does not exist." msgstr "" -#: lms/lms/api.py:207 +#: lms/lms/api.py:202 msgid "Module is incorrect." msgstr "" @@ -3279,7 +3306,7 @@ msgstr "" #. Option for the 'Event' (Select) field in DocType 'LMS Badge' #: frontend/src/pages/Assignments.vue:18 frontend/src/pages/Batches.vue:17 -#: frontend/src/pages/Courses.vue:45 frontend/src/pages/Programs.vue:14 +#: frontend/src/pages/Courses.vue:48 frontend/src/pages/Programs.vue:14 #: lms/lms/doctype/lms_badge/lms_badge.json msgid "New" msgstr "" @@ -3391,7 +3418,7 @@ msgstr "" msgid "No courses created" msgstr "" -#: frontend/src/pages/Courses.vue:147 +#: frontend/src/pages/Courses.vue:151 msgid "No courses found" msgstr "" @@ -3419,7 +3446,7 @@ msgstr "" msgid "No live classes scheduled" msgstr "" -#: frontend/src/pages/CertifiedParticipants.vue:81 +#: frontend/src/pages/CertifiedParticipants.vue:89 msgid "No participants found" msgstr "" @@ -3447,7 +3474,7 @@ msgstr "" msgid "No {0}" msgstr "" -#: frontend/src/pages/Courses.vue:107 +#: frontend/src/pages/Courses.vue:111 msgid "No {0} courses" msgstr "" @@ -3479,7 +3506,7 @@ msgstr "" msgid "Not Graded" msgstr "" -#: frontend/src/components/NoPermission.vue:7 frontend/src/pages/Batch.vue:146 +#: frontend/src/components/NoPermission.vue:7 frontend/src/pages/Batch.vue:153 msgid "Not Permitted" msgstr "" @@ -3614,7 +3641,7 @@ msgstr "" msgid "Ordered Item" msgstr "" -#: frontend/src/pages/JobDetail.vue:76 +#: frontend/src/pages/JobDetail.vue:74 msgid "Organisation" msgstr "" @@ -3710,10 +3737,10 @@ msgstr "" msgid "Paste the youtube link of a short video introducing the course" msgstr "" -#. Label of the payment (Link) field in DocType 'Batch Student' +#. Label of the payment (Link) field in DocType 'LMS Batch Enrollment' #. Label of the payment (Link) field in DocType 'LMS Enrollment' #: frontend/src/pages/BatchForm.vue:211 -#: lms/lms/doctype/batch_student/batch_student.json +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.json #: lms/lms/doctype/lms_enrollment/lms_enrollment.json msgid "Payment" msgstr "" @@ -3729,9 +3756,7 @@ msgstr "" msgid "Payment Details" msgstr "" -#. Label of the payment_gateway (Link) field in DocType 'Web Form' #. Label of the payment_gateway (Data) field in DocType 'LMS Settings' -#: lms/fixtures/custom_field.json #: lms/lms/doctype/lms_settings/lms_settings.json msgid "Payment Gateway" msgstr "" @@ -3746,6 +3771,12 @@ msgstr "" msgid "Payment Received" msgstr "" +#. Label of the payment_reminder_template (Link) field in DocType 'LMS +#. Settings' +#: lms/lms/doctype/lms_settings/lms_settings.json +msgid "Payment Reminder Template" +msgstr "" + #. Label of the payment_settings_tab (Tab Break) field in DocType 'LMS #. Settings' #: lms/lms/doctype/lms_settings/lms_settings.json @@ -3764,11 +3795,6 @@ msgstr "" msgid "Payment for Document Type" msgstr "" -#. Label of the payments_tab (Tab Break) field in DocType 'Web Form' -#: lms/fixtures/custom_field.json -msgid "Payments" -msgstr "" - #. Label of the payments_app_is_not_installed (HTML) field in DocType 'LMS #. Settings' #: lms/lms/doctype/lms_settings/lms_settings.json @@ -3800,11 +3826,15 @@ msgstr "" msgid "Percentage (e.g. 70%)" msgstr "" +#: frontend/src/components/Modals/BatchStudentProgress.vue:35 +msgid "Percentage/Status" +msgstr "" + #: frontend/src/pages/Billing.vue:104 msgid "Phone Number" msgstr "" -#: frontend/src/components/CourseCardOverlay.vue:145 +#: frontend/src/components/CourseCardOverlay.vue:148 msgid "Please Login" msgstr "" @@ -3824,15 +3854,15 @@ msgstr "" msgid "Please click on the following button to set your new password" msgstr "" -#: lms/lms/utils.py:1815 lms/lms/utils.py:1819 +#: lms/lms/utils.py:1851 lms/lms/utils.py:1855 msgid "Please complete the previous courses in the program to enroll in this course." msgstr "" -#: lms/lms/doctype/lms_batch/lms_batch.py:261 +#: lms/lms/doctype/lms_batch/lms_batch.py:184 msgid "Please enable Zoom Settings to use this feature." msgstr "" -#: frontend/src/components/CourseOutline.vue:312 +#: frontend/src/components/CourseOutline.vue:317 msgid "Please enroll for this course to view this lesson" msgstr "" @@ -3861,7 +3891,7 @@ msgstr "" msgid "Please enter your answer" msgstr "" -#: lms/lms/doctype/lms_batch/lms_batch.py:71 +#: lms/lms/doctype/lms_batch/lms_batch.py:57 msgid "Please install the Payments app to create a paid batches." msgstr "" @@ -3881,11 +3911,11 @@ msgstr "" msgid "Please login to access the quiz." msgstr "" -#: frontend/src/components/NoPermission.vue:25 frontend/src/pages/Batch.vue:157 +#: frontend/src/components/NoPermission.vue:25 frontend/src/pages/Batch.vue:164 msgid "Please login to access this page." msgstr "" -#: lms/lms/api.py:203 +#: lms/lms/api.py:198 msgid "Please login to continue with payment." msgstr "" @@ -3964,7 +3994,7 @@ msgstr "" msgid "Postal Code" msgstr "" -#: frontend/src/pages/JobDetail.vue:115 +#: frontend/src/pages/JobDetail.vue:107 msgid "Posted on" msgstr "" @@ -4077,9 +4107,8 @@ msgstr "" #. Label of the progress (Float) field in DocType 'LMS Enrollment' #. Label of the progress (Int) field in DocType 'LMS Program Member' -#: frontend/src/components/BatchStudents.vue:53 -#: frontend/src/components/Modals/BatchStudentProgress.vue:35 -#: frontend/src/components/Modals/BatchStudentProgress.vue:63 +#: frontend/src/components/BatchStudents.vue:75 +#: frontend/src/components/Modals/BatchStudentProgress.vue:82 #: lms/lms/doctype/lms_enrollment/lms_enrollment.json #: lms/lms/doctype/lms_program_member/lms_program_member.json msgid "Progress" @@ -4201,7 +4230,7 @@ msgstr "" msgid "Quiz Submission" msgstr "" -#: frontend/src/pages/QuizSubmission.vue:122 +#: frontend/src/pages/QuizSubmission.vue:128 #: frontend/src/pages/QuizSubmissionList.vue:106 msgid "Quiz Submissions" msgstr "" @@ -4240,7 +4269,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:110 +#: frontend/src/components/CourseCardOverlay.vue:113 #: frontend/src/components/Modals/Event.vue:86 #: frontend/src/components/Modals/ReviewModal.vue:20 #: lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json @@ -4282,7 +4311,7 @@ msgstr "" msgid "Regards" msgstr "" -#: frontend/src/components/BatchOverlay.vue:70 +#: frontend/src/components/BatchOverlay.vue:76 msgid "Register Now" msgstr "" @@ -4385,19 +4414,19 @@ msgstr "" msgid "Route" msgstr "" -#: lms/lms/doctype/lms_batch/lms_batch.py:204 +#: lms/lms/doctype/lms_batch/lms_batch.py:127 msgid "Row #{0} Date cannot be outside the batch duration." msgstr "" -#: lms/lms/doctype/lms_batch/lms_batch.py:199 +#: lms/lms/doctype/lms_batch/lms_batch.py:122 msgid "Row #{0} End time cannot be outside the batch duration." msgstr "" -#: lms/lms/doctype/lms_batch/lms_batch.py:181 +#: lms/lms/doctype/lms_batch/lms_batch.py:104 msgid "Row #{0} Start time cannot be greater than or equal to end time." msgstr "" -#: lms/lms/doctype/lms_batch/lms_batch.py:190 +#: lms/lms/doctype/lms_batch/lms_batch.py:113 msgid "Row #{0} Start time cannot be outside the batch duration." msgstr "" @@ -4482,7 +4511,7 @@ msgstr "" msgid "Search" msgstr "" -#: frontend/src/pages/CertifiedParticipants.vue:17 +#: frontend/src/pages/CertifiedParticipants.vue:25 msgid "Search by Name" msgstr "" @@ -4505,13 +4534,13 @@ msgstr "" msgid "Seat Count" msgstr "" -#: frontend/src/components/BatchCard.vue:16 -#: frontend/src/components/BatchOverlay.vue:9 +#: frontend/src/components/BatchCard.vue:18 +#: frontend/src/components/BatchOverlay.vue:12 msgid "Seat Left" msgstr "" #: frontend/src/components/BatchCard.vue:15 -#: frontend/src/components/BatchOverlay.vue:8 +#: frontend/src/components/BatchOverlay.vue:9 msgid "Seats Left" msgstr "" @@ -4531,6 +4560,10 @@ msgstr "" msgid "Select an assignment" msgstr "" +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.js:7 +msgid "Send Confirmation Email" +msgstr "" + #. Label of the send_calendar_invite_for_evaluations (Check) field in DocType #. 'LMS Settings' #: lms/lms/doctype/lms_settings/lms_settings.json @@ -4639,7 +4672,7 @@ msgid "Signup Settings" msgstr "" #. Label of a chart in the LMS Workspace -#: frontend/src/pages/Statistics.vue:32 lms/lms/workspace/lms/lms.json +#: frontend/src/pages/Statistics.vue:36 lms/lms/workspace/lms/lms.json msgid "Signups" msgstr "" @@ -4689,8 +4722,8 @@ msgstr "" msgid "Slug" msgstr "" -#: frontend/src/components/BatchCard.vue:23 -#: frontend/src/components/BatchOverlay.vue:16 +#: frontend/src/components/BatchCard.vue:25 +#: frontend/src/components/BatchOverlay.vue:19 msgid "Sold Out" msgstr "" @@ -4701,10 +4734,10 @@ msgstr "" msgid "Solution" msgstr "" -#. Label of the source (Link) field in DocType 'Batch Student' +#. Label of the source (Link) field in DocType 'LMS Batch Enrollment' #. Label of the source (Link) field in DocType 'LMS Payment' #. Label of the source (Data) field in DocType 'LMS Source' -#: lms/lms/doctype/batch_student/batch_student.json +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.json #: lms/lms/doctype/lms_payment/lms_payment.json #: lms/lms/doctype/lms_source/lms_source.json msgid "Source" @@ -4825,46 +4858,27 @@ msgid "Status/Score" msgstr "" #. Option for the 'User Category' (Select) field in DocType 'User' -#. Label of the student (Link) field in DocType 'Batch Student' #. Option for the 'Required Role' (Select) field in DocType 'Cohort Web Page' #. Option for the 'Member Type' (Select) field in DocType 'LMS Enrollment' #: frontend/src/pages/ProfileRoles.vue:28 lms/fixtures/custom_field.json -#: lms/lms/doctype/batch_student/batch_student.json #: lms/lms/doctype/cohort_web_page/cohort_web_page.json #: lms/lms/doctype/lms_enrollment/lms_enrollment.json #: lms/templates/signup-form.html:26 msgid "Student" msgstr "" -#. Label of the student_details_section (Section Break) field in DocType 'Batch -#. Student' -#: lms/lms/doctype/batch_student/batch_student.json -msgid "Student Details" -msgstr "" - -#. Label of the student_name (Data) field in DocType 'Batch Student' -#: lms/lms/doctype/batch_student/batch_student.json -msgid "Student Name" -msgstr "" - #: frontend/src/components/CourseReviews.vue:11 msgid "Student Reviews" msgstr "" -#: lms/lms/doctype/lms_batch/lms_batch.py:53 -msgid "Student {0} has already been added to this batch." -msgstr "" - -#. Label of the students (Table) field in DocType 'LMS Batch' #. Label of the show_students (Check) field in DocType 'LMS Settings' -#: frontend/src/components/BatchStudents.vue:18 -#: frontend/src/components/BatchStudents.vue:89 -#: lms/lms/doctype/lms_batch/lms_batch.json +#: frontend/src/components/BatchStudents.vue:20 +#: frontend/src/components/BatchStudents.vue:111 #: lms/lms/doctype/lms_settings/lms_settings.json msgid "Students" msgstr "" -#: frontend/src/components/BatchStudents.vue:302 +#: frontend/src/components/BatchStudents.vue:324 msgid "Students deleted successfully" msgstr "" @@ -4922,9 +4936,9 @@ msgstr "" #: frontend/src/components/Assignment.vue:316 #: frontend/src/components/BatchCourses.vue:151 -#: frontend/src/components/BatchOverlay.vue:135 -#: frontend/src/components/BatchStudents.vue:302 -#: frontend/src/components/CourseCardOverlay.vue:165 +#: frontend/src/components/BatchOverlay.vue:141 +#: frontend/src/components/BatchStudents.vue:324 +#: frontend/src/components/CourseCardOverlay.vue:168 #: frontend/src/components/Modals/AnnouncementModal.vue:99 #: frontend/src/components/Modals/AssessmentModal.vue:73 #: frontend/src/components/Modals/BulkCertificates.vue:121 @@ -4957,7 +4971,7 @@ msgstr "" msgid "Sunday" msgstr "" -#: lms/lms/api.py:995 +#: lms/lms/api.py:997 msgid "Suspicious pattern found in {0}: {1}" msgstr "" @@ -4983,6 +4997,7 @@ msgstr "" #: lms/lms/doctype/lms_badge/lms_badge.json #: lms/lms/doctype/lms_badge_assignment/lms_badge_assignment.json #: lms/lms/doctype/lms_batch/lms_batch.json +#: lms/lms/doctype/lms_batch_enrollment/lms_batch_enrollment.json #: lms/lms/doctype/lms_batch_feedback/lms_batch_feedback.json #: lms/lms/doctype/lms_batch_old/lms_batch_old.json #: lms/lms/doctype/lms_category/lms_category.json @@ -5077,7 +5092,7 @@ msgstr "" msgid "Thanks and Regards" msgstr "" -#: lms/lms/utils.py:1722 +#: lms/lms/utils.py:1760 msgid "The batch is full. Please contact the Administrator." msgstr "" @@ -5109,11 +5124,11 @@ msgstr "" msgid "There are no chapters in this course. Create and manage chapters from here." msgstr "" -#: frontend/src/pages/Courses.vue:151 +#: frontend/src/pages/Courses.vue:155 msgid "There are no courses available at the moment. Keep an eye out, fresh learning experiences are on the way soon!" msgstr "" -#: frontend/src/pages/CertifiedParticipants.vue:84 +#: frontend/src/pages/CertifiedParticipants.vue:92 msgid "There are no participants matching this criteria." msgstr "" @@ -5121,11 +5136,11 @@ 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:151 +#: lms/lms/doctype/lms_batch/lms_batch.py:95 msgid "There are no seats available in this batch." msgstr "" -#: frontend/src/components/BatchStudents.vue:177 +#: frontend/src/components/BatchStudents.vue:199 msgid "There are no students in this batch." msgstr "" @@ -5168,7 +5183,7 @@ msgstr "" msgid "This course has:" msgstr "" -#: lms/lms/utils.py:1573 +#: lms/lms/utils.py:1608 msgid "This course is free." msgstr "" @@ -5248,7 +5263,7 @@ msgstr "" msgid "Timezone" msgstr "" -#: lms/templates/emails/batch_confirmation.html:25 +#: lms/templates/emails/batch_confirmation.html:19 msgid "Timings:" msgstr "" @@ -5312,7 +5327,7 @@ msgstr "" msgid "To Date" msgstr "" -#: lms/lms/utils.py:1584 +#: lms/lms/utils.py:1619 msgid "To join this batch, please contact the Administrator." msgstr "" @@ -5378,7 +5393,7 @@ msgstr "" msgid "Type" msgstr "" -#: frontend/src/components/Quiz.vue:591 +#: frontend/src/components/Quiz.vue:594 msgid "Type your answer" msgstr "" @@ -5441,7 +5456,7 @@ msgstr "" msgid "Upcoming" msgstr "" -#: frontend/src/pages/Batch.vue:169 +#: frontend/src/pages/Batch.vue:176 msgid "Upcoming Batches" msgstr "" @@ -5507,9 +5522,7 @@ msgstr "" msgid "User {0} has reported the job post {1}" msgstr "" -#. Label of the username (Data) field in DocType 'Batch Student' #. Label of the username (Data) field in DocType 'Invite Request' -#: lms/lms/doctype/batch_student/batch_student.json #: lms/lms/doctype/invite_request/invite_request.json msgid "Username" msgstr "" @@ -5556,11 +5569,11 @@ msgstr "" msgid "Visibility" msgstr "" -#: frontend/src/components/BatchOverlay.vue:54 +#: frontend/src/components/BatchOverlay.vue:60 msgid "Visit Batch" msgstr "" -#: lms/templates/emails/batch_confirmation.html:29 +#: lms/templates/emails/batch_confirmation.html:23 msgid "Visit the following link to view your " msgstr "" @@ -5573,6 +5586,14 @@ msgstr "" msgid "We are pleased to inform you that you have been enrolled in our upcoming batch. Congratulations!" msgstr "" +#: lms/templates/emails/payment_reminder.html:7 +msgid "We have a limited number of seats, and they won't be available for long!" +msgstr "" + +#: lms/templates/emails/payment_reminder.html:4 +msgid "We noticed that you started enrolling in the" +msgstr "" + #. Label of the web_page (Link) field in DocType 'LMS Sidebar Item' #: frontend/src/components/Modals/PageModal.vue:23 #: lms/lms/doctype/lms_sidebar_item/lms_sidebar_item.json @@ -5648,15 +5669,15 @@ msgstr "" msgid "You already have an evaluation on {0} at {1} for the course {2}." msgstr "" -#: lms/lms/api.py:227 +#: lms/lms/api.py:222 msgid "You are already enrolled for this batch." msgstr "" -#: lms/lms/api.py:219 +#: lms/lms/api.py:214 msgid "You are already enrolled for this course." msgstr "" -#: frontend/src/pages/Batch.vue:151 +#: frontend/src/pages/Batch.vue:158 msgid "You are not a member of this batch. Please checkout our upcoming batches." msgstr "" @@ -5664,7 +5685,7 @@ msgstr "" msgid "You are not a mentor of the course {0}" msgstr "" -#: frontend/src/components/CourseOutline.vue:311 +#: frontend/src/components/CourseOutline.vue:316 msgid "You are not enrolled" msgstr "" @@ -5672,7 +5693,7 @@ msgstr "" msgid "You are not enrolled in this course. Please enroll to access this lesson." msgstr "" -#: frontend/src/pages/Courses.vue:135 +#: frontend/src/pages/Courses.vue:139 msgid "You can add chapters and lessons to it." msgstr "" @@ -5730,11 +5751,11 @@ msgstr "" msgid "You have already reviewed this course" msgstr "" -#: frontend/src/components/BatchOverlay.vue:136 +#: frontend/src/components/BatchOverlay.vue:142 msgid "You have been enrolled in this batch" msgstr "" -#: frontend/src/components/CourseCardOverlay.vue:166 +#: frontend/src/components/CourseCardOverlay.vue:169 msgid "You have been enrolled in this course" msgstr "" @@ -5754,7 +5775,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:146 +#: frontend/src/components/CourseCardOverlay.vue:149 msgid "You need to login first to enroll for this course" msgstr "" @@ -5828,11 +5849,15 @@ msgstr "" msgid "activity" msgstr "" +#: lms/templates/emails/payment_reminder.html:4 +msgid "but didn’t complete your payment" +msgstr "" + #: lms/templates/emails/mentor_request_creation_email.html:5 msgid "cancel your application" msgstr "" -#: frontend/src/pages/Lesson.vue:174 +#: frontend/src/pages/Lesson.vue:177 msgid "completed" msgstr "" @@ -5892,7 +5917,7 @@ msgstr "" msgid "you can" msgstr "" -#: lms/lms/api.py:792 lms/lms/api.py:800 +#: lms/lms/api.py:787 lms/lms/api.py:795 msgid "{0} Settings not found" msgstr "" From 6999f6641afa6dceb3390c82a1aff494139ff6bb Mon Sep 17 00:00:00 2001 From: Jannat Patel <31363128+pateljannat@users.noreply.github.com> Date: Sat, 15 Feb 2025 22:29:52 +0530 Subject: [PATCH 04/40] chore: Bosnian translations --- lms/locale/bs.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lms/locale/bs.po b/lms/locale/bs.po index 2476540e..16fd0675 100644 --- a/lms/locale/bs.po +++ b/lms/locale/bs.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: jannat@frappe.io\n" "POT-Creation-Date: 2025-02-07 16:03+0000\n" -"PO-Revision-Date: 2025-02-13 16:47\n" +"PO-Revision-Date: 2025-02-15 16:59\n" "Last-Translator: jannat@frappe.io\n" "Language-Team: Bosnian\n" "MIME-Version: 1.0\n" @@ -1668,7 +1668,7 @@ msgstr "" #: frontend/src/components/Members.vue:32 lms/templates/signup-form.html:10 msgid "Email" -msgstr "E-pošta" +msgstr "e-pošta" #: frontend/src/components/Modals/Event.vue:16 msgid "Email ID" @@ -1836,7 +1836,7 @@ msgstr "Grеška" #. Label of a shortcut in the LMS Workspace #: frontend/src/components/Modals/Event.vue:364 lms/lms/workspace/lms/lms.json msgid "Evaluation" -msgstr "" +msgstr "Evaluacija" #. Label of the section_break_6 (Section Break) field in DocType 'LMS #. Certificate Evaluation' @@ -2153,7 +2153,7 @@ msgstr "Google Meet veza" #: frontend/src/components/Assignment.vue:154 #: lms/lms/doctype/education_detail/education_detail.json msgid "Grade" -msgstr "" +msgstr "Ocjena" #. Label of the grade_assignment (Check) field in DocType 'LMS Assignment' #: lms/lms/doctype/lms_assignment/lms_assignment.json @@ -3898,7 +3898,7 @@ msgstr "" #: frontend/src/components/Modals/LiveClassModal.vue:167 msgid "Please select a date." -msgstr "" +msgstr "Odaberi Datum." #: frontend/src/components/Modals/LiveClassModal.vue:191 msgid "Please select a duration." @@ -4304,7 +4304,7 @@ msgstr "Registrovan, ali onemogućen" #: lms/lms/doctype/invite_request/invite_request.json #: lms/lms/doctype/lms_mentor_request/lms_mentor_request.json msgid "Rejected" -msgstr "" +msgstr "Odbijeno" #. Label of the related_courses (Table) field in DocType 'LMS Course' #. Name of a DocType @@ -5344,7 +5344,7 @@ msgstr "" #. Option for the 'Location Preference' (Select) field in DocType 'User' #: lms/fixtures/custom_field.json msgid "Travel" -msgstr "" +msgstr "Putovanja" #: frontend/src/components/Quiz.vue:256 lms/templates/quiz/quiz.html:131 msgid "Try Again" From 50fe94e47be2a5dcb3a068a309984a933cc70583 Mon Sep 17 00:00:00 2001 From: Fahid Latheef Alungal Date: Sun, 16 Feb 2025 16:08:35 +0530 Subject: [PATCH 05/40] fix: fix yarn dev not working due to const variable re-assignment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It was causing this error ✘ [ERROR] Cannot assign to "isLoggedIn" because it is a constant src/router.js:230:2: 230 │ isLoggedIn = false ╵ ~~~~~~~~~~ The symbol "isLoggedIn" was declared a constant here: src/router.js:222:7: 222 │ const { isLoggedIn } = sessionStore() ╵ ^ --- frontend/src/router.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/router.js b/frontend/src/router.js index a6d02f73..742d48d4 100644 --- a/frontend/src/router.js +++ b/frontend/src/router.js @@ -219,7 +219,7 @@ let router = createRouter({ router.beforeEach(async (to, from, next) => { const { userResource } = usersStore() - const { isLoggedIn } = sessionStore() + let { isLoggedIn } = sessionStore() const { allowGuestAccess } = useSettings() try { From 54047e3c2c8cd47867d08ca33a908f17608d4366 Mon Sep 17 00:00:00 2001 From: Fahid Latheef Alungal Date: Sun, 16 Feb 2025 16:10:14 +0530 Subject: [PATCH 06/40] fix: fix spelling typo Maximun Attempts -> Maximum Attempts --- frontend/src/pages/QuizForm.vue | 2 +- lms/locale/ar.po | 2 +- lms/locale/bs.po | 2 +- lms/locale/de.po | 2 +- lms/locale/eo.po | 2 +- lms/locale/es.po | 2 +- lms/locale/fa.po | 2 +- lms/locale/fr.po | 2 +- lms/locale/hu.po | 2 +- lms/locale/main.pot | 2 +- lms/locale/pl.po | 2 +- lms/locale/ru.po | 2 +- lms/locale/sv.po | 2 +- lms/locale/tr.po | 2 +- lms/locale/zh.po | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/frontend/src/pages/QuizForm.vue b/frontend/src/pages/QuizForm.vue index b8f66df6..c143d2aa 100644 --- a/frontend/src/pages/QuizForm.vue +++ b/frontend/src/pages/QuizForm.vue @@ -55,7 +55,7 @@ Date: Sun, 16 Feb 2025 18:19:14 +0530 Subject: [PATCH 07/40] fix: fixed incomplete router initialization in Quiz.vue which was allowing user to submit quiz multiple times --- frontend/src/utils/quiz.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frontend/src/utils/quiz.js b/frontend/src/utils/quiz.js index e391bc30..4781ba70 100644 --- a/frontend/src/utils/quiz.js +++ b/frontend/src/utils/quiz.js @@ -4,6 +4,7 @@ import { createApp, h } from 'vue' import { usersStore } from '../stores/user' import translationPlugin from '../translation' import { CircleHelp } from 'lucide-vue-next' +import router from '@/router' export class Quiz { constructor({ data, api, readOnly }) { @@ -46,6 +47,7 @@ export class Quiz { quiz: quiz, }) app.use(translationPlugin) + app.use(router) const { userResource } = usersStore() app.provide('$user', userResource) app.mount(this.wrapper) From 8b1058e5777e15520f91376b810d72840802d2c1 Mon Sep 17 00:00:00 2001 From: Fahid Latheef Alungal Date: Sun, 16 Feb 2025 18:27:38 +0530 Subject: [PATCH 08/40] fix: fixed issue in which submissions are not reflected gracefully until page reload ListView throws error if initialized without emptyState which was causing the component to not reload when number of submissions was 0. --- frontend/src/components/Quiz.vue | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/Quiz.vue b/frontend/src/components/Quiz.vue index b925cb7f..149e1f4b 100644 --- a/frontend/src/components/Quiz.vue +++ b/frontend/src/components/Quiz.vue @@ -258,14 +258,22 @@
From e374ae3229e774f3c1bfcccd3bb7e3d303f2cdd8 Mon Sep 17 00:00:00 2001 From: Fahid Latheef Alungal Date: Sun, 16 Feb 2025 18:28:48 +0530 Subject: [PATCH 09/40] fix: fixed spelling nextQuetion -> nextQuestion --- frontend/src/components/Quiz.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/Quiz.vue b/frontend/src/components/Quiz.vue index 149e1f4b..c0de8ff5 100644 --- a/frontend/src/components/Quiz.vue +++ b/frontend/src/components/Quiz.vue @@ -207,7 +207,7 @@