From ff98df6acd7c095a2d3363e8890f932a27ba1c86 Mon Sep 17 00:00:00 2001 From: raizasafeel <89463672+raizasafeel@users.noreply.github.com> Date: Wed, 1 Apr 2026 09:13:42 +0530 Subject: [PATCH 01/12] feat: detect language and change direction --- frontend/index.html | 466 ++++++++++++++++++++++---------------------- lms/www/_lms.py | 4 + 2 files changed, 240 insertions(+), 230 deletions(-) diff --git a/frontend/index.html b/frontend/index.html index d910e2c8..8be6cd37 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -1,231 +1,237 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{ title }} - - - - - - - - - - - - -
-
-

{{ meta.title }}

-

- {{ meta.description }} -

- Know More -
-
- - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ title }} + + + + + + + + + + + + +
+
+

{{ meta.title }}

+

{{ meta.description }}

+ Know More +
+
+ + + diff --git a/lms/www/_lms.py b/lms/www/_lms.py index 2e9dd837..d106c9ef 100644 --- a/lms/www/_lms.py +++ b/lms/www/_lms.py @@ -3,7 +3,9 @@ import re import frappe from bs4 import BeautifulSoup from frappe import _ +from frappe.translate import get_user_lang from frappe.utils.data import escape_html +from frappe.utils.jinja_globals import is_rtl from frappe.utils.telemetry import capture from lms.lms.utils import get_lms_path, get_lms_route @@ -36,6 +38,8 @@ def get_boot(): "csrf_token": frappe.sessions.get_csrf_token(), "site_name": frappe.local.site, "lms_path": get_lms_path(), + "lang": get_user_lang(), + "text_direction": "rtl" if is_rtl() else "ltr", } ) From 453862a653bb9d111ff1512f3093d6fe7f6093d3 Mon Sep 17 00:00:00 2001 From: raizasafeel <89463672+raizasafeel@users.noreply.github.com> Date: Fri, 10 Apr 2026 12:56:58 +0530 Subject: [PATCH 02/12] chore(deps): bump frappe-ui to v.0.1.275 for rtl support --- frontend/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index d94a0be5..d2ecbbf8 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -31,7 +31,7 @@ "dayjs": "1.11.10", "dompurify": "3.2.6", "feather-icons": "4.28.0", - "frappe-ui": "^0.1.264", + "frappe-ui": "^0.1.275", "highlight.js": "11.11.1", "lucide-vue-next": "0.383.0", "markdown-it": "14.0.0", @@ -49,7 +49,7 @@ "vuedraggable": "4.1.0" }, "devDependencies": { - "@vitejs/plugin-vue": "5.0.3", + "@vitejs/plugin-vue": "5.0.3", "autoprefixer": "10.4.2", "postcss": "8.4.5", "tailwindcss": "^3.4.15", From fa94e5f96a353e34a179c93a850b89406b15b3bf Mon Sep 17 00:00:00 2001 From: raizasafeel <89463672+raizasafeel@users.noreply.github.com> Date: Fri, 10 Apr 2026 14:58:00 +0530 Subject: [PATCH 03/12] refactor(pages): swap tailwindcss classes with ones with rtl support --- .../src/pages/AssignmentSubmissionList.vue | 2 +- frontend/src/pages/Batches/BatchDetail.vue | 2 +- frontend/src/pages/Batches/BatchOverview.vue | 2 +- frontend/src/pages/Batches/Batches.vue | 4 ++-- .../Batches/components/AdminBatchDashboard.vue | 8 ++++---- .../pages/Batches/components/Announcements.vue | 2 +- .../pages/Batches/components/Assessments.vue | 2 +- .../src/pages/Batches/components/BatchCard.vue | 6 +++--- .../pages/Batches/components/BatchCourses.vue | 2 +- .../Batches/components/BatchDashboard.vue | 4 ++-- .../pages/Batches/components/BatchOverlay.vue | 10 +++++----- .../components/BatchStudentProgress.vue | 12 ++++++------ .../src/pages/Batches/components/LiveClass.vue | 10 +++++----- .../pages/Batches/components/NewBatchModal.vue | 2 +- frontend/src/pages/Billing.vue | 4 ++-- frontend/src/pages/CertifiedParticipants.vue | 10 +++++----- frontend/src/pages/Courses/CourseDashboard.vue | 12 ++++++------ frontend/src/pages/Courses/CourseDetail.vue | 2 +- .../pages/Courses/CourseEnrollmentModal.vue | 2 +- frontend/src/pages/Courses/CourseForm.vue | 16 ++++++++-------- frontend/src/pages/Courses/CourseOverview.vue | 10 +++++----- frontend/src/pages/Courses/Courses.vue | 4 ++-- frontend/src/pages/Courses/NewCourseModal.vue | 2 +- .../pages/Courses/StudentCourseProgress.vue | 4 ++-- frontend/src/pages/Home/AdminHome.vue | 18 +++++++++--------- frontend/src/pages/Home/Streak.vue | 2 +- frontend/src/pages/Home/StudentHome.vue | 12 ++++++------ frontend/src/pages/JobApplications.vue | 4 ++-- frontend/src/pages/JobDetail.vue | 6 +++--- frontend/src/pages/JobForm.vue | 2 +- frontend/src/pages/Jobs.vue | 4 ++-- frontend/src/pages/Lesson.vue | 16 ++++++++-------- frontend/src/pages/Notifications.vue | 18 +++++++++--------- frontend/src/pages/PersonaForm.vue | 4 ++-- frontend/src/pages/Profile.vue | 10 +++++----- frontend/src/pages/ProfileAbout.vue | 4 ++-- frontend/src/pages/ProfileEvaluator.vue | 4 ++-- frontend/src/pages/ProfileRoles.vue | 2 +- .../ProgrammingExerciseForm.vue | 4 ++-- .../ProgrammingExerciseSubmission.vue | 6 +++--- .../ProgrammingExerciseSubmissions.vue | 4 ++-- .../ProgrammingExercises.vue | 2 +- frontend/src/pages/Programs/ProgramDetail.vue | 2 +- .../src/pages/Programs/ProgramEnrollment.vue | 12 ++++++------ frontend/src/pages/Programs/ProgramForm.vue | 10 +++++----- .../pages/Programs/ProgramProgressSummary.vue | 2 +- frontend/src/pages/Programs/Programs.vue | 8 ++++---- .../src/pages/Programs/StudentPrograms.vue | 6 +++--- frontend/src/pages/QuizForm.vue | 4 ++-- frontend/src/pages/QuizSubmission.vue | 2 +- frontend/src/pages/QuizSubmissionList.vue | 2 +- frontend/src/pages/Quizzes.vue | 4 ++-- frontend/src/pages/Search/Search.vue | 6 +++--- 53 files changed, 157 insertions(+), 157 deletions(-) diff --git a/frontend/src/pages/AssignmentSubmissionList.vue b/frontend/src/pages/AssignmentSubmissionList.vue index 8d6a17fb..77f7ccb2 100644 --- a/frontend/src/pages/AssignmentSubmissionList.vue +++ b/frontend/src/pages/AssignmentSubmissionList.vue @@ -26,7 +26,7 @@ rowKey="name" > diff --git a/frontend/src/pages/Batches/BatchDetail.vue b/frontend/src/pages/Batches/BatchDetail.vue index c90f80da..d21b78a2 100644 --- a/frontend/src/pages/Batches/BatchDetail.vue +++ b/frontend/src/pages/Batches/BatchDetail.vue @@ -4,7 +4,7 @@ class="sticky top-0 z-10 border-b flex items-center justify-between bg-surface-white px-3 py-2.5 sm:px-5" > -
+
{{ __('Not Saved') }} diff --git a/frontend/src/pages/Batches/BatchOverview.vue b/frontend/src/pages/Batches/BatchOverview.vue index 918ffe7a..b674bd59 100644 --- a/frontend/src/pages/Batches/BatchOverview.vue +++ b/frontend/src/pages/Batches/BatchOverview.vue @@ -10,7 +10,7 @@
@@ -51,7 +51,7 @@ {{ __('All Batches') }}
-
+
{{ __('Students') }}
-
+
-->
diff --git a/frontend/src/pages/Batches/components/Announcements.vue b/frontend/src/pages/Batches/components/Announcements.vue index 7b0a65af..8155c459 100644 --- a/frontend/src/pages/Batches/components/Announcements.vue +++ b/frontend/src/pages/Batches/components/Announcements.vue @@ -9,7 +9,7 @@
-
+
{{ comm.sender_full_name }}
diff --git a/frontend/src/pages/Batches/components/Assessments.vue b/frontend/src/pages/Batches/components/Assessments.vue index 7e2c7200..01977da5 100644 --- a/frontend/src/pages/Batches/components/Assessments.vue +++ b/frontend/src/pages/Batches/components/Assessments.vue @@ -24,7 +24,7 @@ }" > diff --git a/frontend/src/pages/Batches/components/BatchCard.vue b/frontend/src/pages/Batches/components/BatchCard.vue index d002134e..e8f409d6 100644 --- a/frontend/src/pages/Batches/components/BatchCard.vue +++ b/frontend/src/pages/Batches/components/BatchCard.vue @@ -39,7 +39,7 @@ class="text-sm text-ink-gray-7" />
- + {{ formatTime(batch.start_time) }} - {{ formatTime(batch.end_time) }} @@ -48,7 +48,7 @@ v-if="batch.timezone" class="flex items-center text-sm text-ink-gray-7" > - + {{ batch.timezone }} @@ -59,7 +59,7 @@ class="flex avatar-group overlap mt-4" >
diff --git a/frontend/src/pages/Batches/components/BatchDashboard.vue b/frontend/src/pages/Batches/components/BatchDashboard.vue index d88d6dbe..e49449e1 100644 --- a/frontend/src/pages/Batches/components/BatchDashboard.vue +++ b/frontend/src/pages/Batches/components/BatchDashboard.vue @@ -35,7 +35,7 @@ }" > @@ -65,7 +65,7 @@
-
+
- + {{ batch.data.courses.length }} {{ __('Courses') }}
- + {{ formatTime(batch.data.start_time) }} - {{ formatTime(batch.data.end_time) }}
- + {{ batch.data.timezone }} diff --git a/frontend/src/pages/Batches/components/BatchStudentProgress.vue b/frontend/src/pages/Batches/components/BatchStudentProgress.vue index fb5a3d6a..c2c05889 100644 --- a/frontend/src/pages/Batches/components/BatchStudentProgress.vue +++ b/frontend/src/pages/Batches/components/BatchStudentProgress.vue @@ -7,10 +7,10 @@ >
{{ Math.ceil(row[column.key]) }}%
diff --git a/frontend/src/pages/Batches/components/LiveClass.vue b/frontend/src/pages/Batches/components/LiveClass.vue index 466bb08d..f79d6950 100644 --- a/frontend/src/pages/Batches/components/LiveClass.vue +++ b/frontend/src/pages/Batches/components/LiveClass.vue @@ -2,7 +2,7 @@