Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
29217ab
chore: update POT file
frappe-pr-bot Dec 5, 2025
fedd5e6
chore: Hungarian translations
pateljannat Dec 5, 2025
de356c4
Merge pull request #1883 from frappe/pot_develop_2025-12-05
pateljannat Dec 8, 2025
114d183
Merge pull request #1884 from frappe/l10n_develop2
pateljannat Dec 8, 2025
5825bcf
fix: use frappe-ui theme colors and fixed tailwind config
pateljannat Dec 8, 2025
040d74c
fix: use frappe-ui theme colors and fixed tailwind config
pateljannat Dec 8, 2025
93ffcdb
Merge branch 'develop' of https://github.com/frappe/lms into issues-157
pateljannat Dec 8, 2025
6e93f95
refactor: markdown editor
pateljannat Dec 8, 2025
4dddb9f
fix: exclude frappe-ui from optimiseDeps only on local
pateljannat Dec 8, 2025
645581e
Merge pull request #1886 from pateljannat/issues-157
pateljannat Dec 8, 2025
bc84e46
fix: charts and dashboards as per version 16
pateljannat Dec 8, 2025
61215cf
Merge pull request #1887 from pateljannat/issues-158
pateljannat Dec 8, 2025
b057392
chore: removed cohort related doctypes
pateljannat Dec 8, 2025
0dc0794
Merge pull request #1888 from pateljannat/version-16-changes
pateljannat Dec 8, 2025
f95b62a
chore: configured codecov for CI
pateljannat Dec 8, 2025
1f65439
chore: upload coverage data codecov
pateljannat Dec 8, 2025
bcda74a
Merge pull request #1889 from pateljannat/code-coverage
pateljannat Dec 8, 2025
34cd751
chore: Spanish translations
pateljannat Dec 8, 2025
31a1aa7
chore: Arabic translations
pateljannat Dec 8, 2025
f0d3439
chore: Czech translations
pateljannat Dec 8, 2025
7311644
chore: Danish translations
pateljannat Dec 8, 2025
fc43259
chore: German translations
pateljannat Dec 8, 2025
97a873c
chore: Hungarian translations
pateljannat Dec 8, 2025
a263bcd
chore: Italian translations
pateljannat Dec 8, 2025
8c66558
chore: Dutch translations
pateljannat Dec 8, 2025
bcd7aca
chore: Polish translations
pateljannat Dec 8, 2025
2e0266a
chore: Portuguese translations
pateljannat Dec 8, 2025
dc1ce8e
chore: Russian translations
pateljannat Dec 8, 2025
2819531
chore: Slovenian translations
pateljannat Dec 8, 2025
c93b189
chore: Serbian (Cyrillic) translations
pateljannat Dec 8, 2025
dd034ec
chore: Swedish translations
pateljannat Dec 8, 2025
a4bfe37
chore: Turkish translations
pateljannat Dec 8, 2025
5ee7a6e
chore: Chinese Simplified translations
pateljannat Dec 8, 2025
1252234
chore: Vietnamese translations
pateljannat Dec 8, 2025
dbd6ac1
chore: Portuguese, Brazilian translations
pateljannat Dec 8, 2025
50a8550
chore: Indonesian translations
pateljannat Dec 8, 2025
0add20e
chore: Persian translations
pateljannat Dec 8, 2025
a4cbcc2
chore: Tamil translations
pateljannat Dec 8, 2025
28a0cb5
chore: Thai translations
pateljannat Dec 8, 2025
dc95c63
chore: Croatian translations
pateljannat Dec 8, 2025
4f93908
chore: Burmese translations
pateljannat Dec 8, 2025
edb2369
chore: Bosnian translations
pateljannat Dec 8, 2025
1b30df0
chore: Norwegian Bokmal translations
pateljannat Dec 8, 2025
49a6305
chore: Serbian (Latin) translations
pateljannat Dec 8, 2025
e257a3f
chore: French translations
pateljannat Dec 8, 2025
ce110e8
chore: Esperanto translations
pateljannat Dec 8, 2025
829245f
Merge pull request #1891 from frappe/l10n_develop2
pateljannat Dec 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 26 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
jobs:
tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
services:
redis-cache:
image: redis:alpine
Expand Down Expand Up @@ -77,4 +79,27 @@ jobs:
run: bench --site frappe.local build
- name: run tests
working-directory: /home/runner/frappe-bench
run: bench --site frappe.local run-tests --app lms
run: bench --site frappe.local run-tests --app lms --coverage
- name: Upload coverage data
uses: actions/upload-artifact@v4
with:
path: /home/runner/frappe-bench/sites/coverage.xml

coverage:
name: Coverage Wrap Up
needs: tests
runs-on: ubuntu-latest
steps:
- name: Clone
uses: actions/checkout@v3

- name: Download artifacts
uses: actions/download-artifact@v4

- name: Upload coverage data
uses: codecov/codecov-action@v5
with:
name: Server
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
verbose: true
1 change: 1 addition & 0 deletions cypress/e2e/course_creation.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ describe("Course Creation", () => {
.parent()
.within(() => {
cy.get("input").click().type("frappe");
cy.wait(500);
cy.get("input")
.invoke("attr", "aria-controls")
.as("instructor_list_id");
Expand Down
7 changes: 4 additions & 3 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
"scripts": {
"dev": "vite",
"serve": "vite preview",
"build": "vite build --base=/assets/lms/frontend/ && yarn copy-html-entry",
"copy-html-entry": "cp ../lms/public/frontend/index.html ../lms/www/lms.html"
"build": "vite build --base=/assets/lms/frontend/ && yarn copy-html-entry && yarn copy-colors-json",
"copy-html-entry": "cp ../lms/public/frontend/index.html ../lms/www/lms.html",
"copy-colors-json": "cp node_modules/frappe-ui/src/tailwind/colors.json src/utils/frappe-ui-colors.json"
},
"dependencies": {
"@codemirror/lang-html": "6.4.9",
Expand Down Expand Up @@ -40,7 +41,6 @@
"pinia": "2.0.33",
"plyr": "3.7.8",
"socket.io-client": "4.7.2",
"tailwindcss": "3.4.15",
"thememirror": "2.0.1",
"typescript": "5.7.2",
"vue": "^3.5.0",
Expand All @@ -56,6 +56,7 @@
"autoprefixer": "10.4.2",
"postcss": "8.4.5",
"vite": "5.0.11",
"tailwindcss": "^3.4.15",
"vite-plugin-pwa": "0.15.0"
},
"resolutions": {
Expand Down
11 changes: 6 additions & 5 deletions frontend/src/components/Controls/ColorSwatches.vue
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,10 @@
:style="
modelValue
? {
backgroundColor:
theme.backgroundColor[modelValue.toLowerCase()][400],
backgroundColor: getColor(
modelValue.toLowerCase(),
400
),
}
: {}
"
Expand Down Expand Up @@ -55,8 +57,7 @@
:key="color"
class="size-5 rounded-full cursor-pointer"
:style="{
backgroundColor:
theme.backgroundColor[color.toLowerCase()][400],
backgroundColor: getColor(color.toLowerCase(), 400),
}"
@click="
(e) => {
Expand All @@ -79,7 +80,7 @@
import { Button, FormControl, Popover } from 'frappe-ui'
import { computed } from 'vue'
import { Palette, X } from 'lucide-vue-next'
import { theme } from '@/utils/theme'
import { getColor } from '@/utils'

const emit = defineEmits(['update:modelValue', 'change'])

Expand Down
6 changes: 4 additions & 2 deletions frontend/src/components/CourseCard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -136,11 +136,11 @@
import { Award, BookOpen, GraduationCap, Star, Users } from 'lucide-vue-next'
import { sessionStore } from '@/stores/session'
import { Tooltip } from 'frappe-ui'
import { theme } from '@/utils/theme'
import { formatAmount } from '@/utils'
import CourseInstructors from '@/components/CourseInstructors.vue'
import UserAvatar from '@/components/UserAvatar.vue'
import ProgressBar from '@/components/ProgressBar.vue'
import colors from '@/utils/frappe-ui-colors.json'

const { user } = sessionStore()

Expand All @@ -152,8 +152,10 @@ const props = defineProps({
})

const getGradientColor = () => {
let theme =
localStorage.getItem('theme') == 'light' ? 'lightMode' : 'darkMode'
let color = props.course.card_gradient?.toLowerCase() || 'blue'
let colorMap = theme.backgroundColor[color]
let colorMap = colors[theme][color]
return `linear-gradient(to top right, black, ${colorMap[400]})`
/* return `bg-gradient-to-br from-${color}-100 via-${color}-200 to-${color}-400` */
/* return `linear-gradient(to bottom right, ${colorMap[100]}, ${colorMap[400]})` */
Expand Down
12 changes: 6 additions & 6 deletions frontend/src/components/Modals/CourseProgressSummary.vue
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,11 @@
categoryColumn: 'category',
valueColumn: 'count',
colors: [
theme.colors.red['400'],
theme.colors.amber['400'],
theme.colors.pink['400'],
theme.colors.blue['400'],
theme.colors.green['400'],
getColor('red', 400),
getColor('amber', 400),
getColor('pink', 400),
getColor('blue', 400),
getColor('green', 400),
],
}"
/>
Expand Down Expand Up @@ -146,7 +146,7 @@ import {
NumberChart,
} from 'frappe-ui'
import { computed, ref, watch } from 'vue'
import { theme } from '@/utils/theme'
import { getColor } from '@/utils'

const show = defineModel<boolean>({ default: false })
const searchFilter = ref<string | null>(null)
Expand Down
5 changes: 2 additions & 3 deletions frontend/src/components/Notes/InlineLessonMenu.vue
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<span
class="size-3 rounded-full"
:style="{
backgroundColor: theme.backgroundColor[color.toLowerCase()][400],
backgroundColor: getColor(color.toLowerCase(), 400),
}"
></span>
<span>
Expand Down Expand Up @@ -55,9 +55,8 @@
<script setup lang="ts">
import { computed, inject, ref, watch } from 'vue'
import { NotepadText, Trash2 } from 'lucide-vue-next'
import { theme } from '@/utils/theme'
import type { Note, Notes } from '@/components/Notes/types'
import { blockQuotesClick, highlightText } from '@/utils'
import { blockQuotesClick, getColor, highlightText } from '@/utils'

const user = inject<any>('$user')
const show = defineModel()
Expand Down
12 changes: 6 additions & 6 deletions frontend/src/components/StudentHeatmap.vue
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import { createResource } from 'frappe-ui'
import { computed, inject, onMounted, ref, watch } from 'vue'
import ApexChart from 'vue3-apexcharts'
import { theme } from '@/utils/theme'
import { getColor } from '@/utils'

const user = inject('$user')
const labels = ref([])
Expand Down Expand Up @@ -81,11 +81,11 @@ const chartOptions = computed(() => {
enableShades: true,
colorScale: {
ranges: [
{ from: 0, to: 0, color: theme.colors.gray[400] },
{ from: 1, to: 5, color: theme.colors.green[200] },
{ from: 6, to: 15, color: theme.colors.green[500] },
{ from: 16, to: 30, color: theme.colors.green[700] },
{ from: 31, to: 100, color: theme.colors.green[800] },
{ from: 0, to: 0, color: getColor('green', 400) },
{ from: 1, to: 5, color: getColor('green', 200) },
{ from: 6, to: 15, color: getColor('green', 500) },
{ from: 16, to: 30, color: getColor('green', 700) },
{ from: 31, to: 100, color: getColor('green', 800) },
],
},
},
Expand Down
10 changes: 5 additions & 5 deletions frontend/src/pages/Programs/ProgramForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
</Button>
</div>
<ListView
v-if="program.program_courses.length > 0"
v-if="program.program_courses?.length > 0"
:columns="courseColumns"
:rows="program.program_courses"
:options="{
Expand Down Expand Up @@ -133,7 +133,7 @@
</div>
</div>
<ListView
v-if="program.program_members.length > 0"
v-if="program.program_members?.length > 0"
:columns="memberColumns"
:rows="program.program_members"
:options="{
Expand Down Expand Up @@ -430,7 +430,7 @@ const addCourse = (close: () => void) => {
}

const existingCourse = program.value.program_courses.find(
(c) => c.course === course.value
(c: any) => c.course === course.value
)
if (!existingCourse) {
program.value.program_courses.push({
Expand Down Expand Up @@ -544,11 +544,11 @@ const remove = (
const selectionsArray = Array.from(selections)
if (type === 'courses') {
program.value.program_courses = program.value.program_courses.filter(
(c) => !selectionsArray.includes(c.name || c.course)
(c: any) => !selectionsArray.includes(c.name || c.course)
)
} else {
program.value.program_members = program.value.program_members.filter(
(m) => !selectionsArray.includes(m.name || m.member)
(m: any) => !selectionsArray.includes(m.name || m.member)
)
}
dirty.value = true
Expand Down
12 changes: 6 additions & 6 deletions frontend/src/pages/Programs/ProgramProgressSummary.vue
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@
categoryColumn: 'category',
valueColumn: 'count',
colors: [
theme.colors.red['400'],
theme.colors.amber['400'],
theme.colors.pink['400'],
theme.colors.blue['400'],
theme.colors.green['400'],
getColor('red', 400),
getColor('amber', 400),
getColor('pink', 400),
getColor('blue', 400),
getColor('green', 400),
],
}"
/>
Expand Down Expand Up @@ -74,7 +74,7 @@ import {
} from 'frappe-ui'
import type { ProgramMember } from '@/types'
import { computed, ref, watch } from 'vue'
import { theme } from '@/utils/theme'
import { getColor } from '@/utils'

const show = defineModel<boolean>({ default: false })
const searchFilter = ref<string | null>(null)
Expand Down
Loading
Loading