Merge pull request #1987 from pateljannat/issues-168

fix: misc issues
This commit is contained in:
Jannat Patel
2026-01-14 12:46:39 +05:30
committed by GitHub
10 changed files with 134 additions and 33 deletions
@@ -4,15 +4,30 @@
<div class="text-lg text-ink-gray-9 font-semibold"> <div class="text-lg text-ink-gray-9 font-semibold">
{{ __('Upcoming Evaluations') }} {{ __('Upcoming Evaluations') }}
</div> </div>
<Button <Button v-if="canScheduleEvals" @click="openEvalModal">
v-if="
upcoming_evals.data?.length != evaluationCourses.length && !forHome
"
@click="openEvalModal"
>
{{ __('Schedule Evaluation') }} {{ __('Schedule Evaluation') }}
</Button> </Button>
</div> </div>
<div
v-if="endDate && !endDateHasPassed"
class="text-sm leading-5 bg-surface-amber-1 text-ink-amber-3 p-2 rounded-md mb-4"
>
{{ __('The last day to schedule your evaluations is ') }}
<span class="font-medium">
{{ dayjs(endDate).format('DD MMMM YYYY') }} </span
>.
{{ __('Please make sure to schedule your evaluation before this date.') }}
</div>
<div
v-else-if="endDateHasPassed"
class="text-sm leading-5 bg-surface-red-1 text-ink-red-3 p-2 rounded-md mb-4"
>
{{
__(
'The deadline to schedule evaluations has passed. Please contact the Instructor for assistance.'
)
}}
</div>
<div v-if="upcoming_evals.data?.length"> <div v-if="upcoming_evals.data?.length">
<div <div
class="grid gap-4" class="grid gap-4"
@@ -99,7 +114,7 @@
</div> </div>
</div> </div>
</div> </div>
<div v-else class="text-ink-gray-5"> <div v-else-if="!endDateHasPassed" class="text-ink-gray-5">
{{ __('Schedule an evaluation to get certified.') }} {{ __('Schedule an evaluation to get certified.') }}
</div> </div>
</div> </div>
@@ -173,6 +188,18 @@ const evaluationCourses = computed(() => {
}) })
}) })
const canScheduleEvals = computed(() => {
return (
upcoming_evals.data?.length != evaluationCourses.length &&
!props.forHome &&
!endDateHasPassed.value
)
})
const endDateHasPassed = computed(() => {
return dayjs().isSameOrAfter(dayjs(props.endDate))
})
const cancelEvaluation = (evl) => { const cancelEvaluation = (evl) => {
$dialog({ $dialog({
title: __('Cancel this evaluation?'), title: __('Cancel this evaluation?'),
+1 -14
View File
@@ -144,20 +144,7 @@
</span> </span>
</div> </div>
</div> </div>
<div
v-if="batch.data.evaluation_end_date && isStudent"
class="text-sm leading-5 bg-surface-amber-1 text-ink-amber-3 p-2 rounded-md mb-10"
>
{{ __('The last day to schedule your evaluations is ') }}
<span class="font-medium">
{{
dayjs(batch.data.evaluation_end_date).format('DD MMMM YYYY')
}} </span
>.
{{
__('Please make sure to schedule your evaluation before this date.')
}}
</div>
<div v-if="dayjs().isSameOrAfter(dayjs(batch.data.start_date))"> <div v-if="dayjs().isSameOrAfter(dayjs(batch.data.start_date))">
<div class="text-ink-gray-7 font-semibold mb-2"> <div class="text-ink-gray-7 font-semibold mb-2">
{{ __('Feedback') }} {{ __('Feedback') }}
+9
View File
@@ -667,6 +667,15 @@ iframe {
padding: 8px; padding: 8px;
} }
.codex-editor--narrow .ce-toolbox .ce-popover {
right: unset;
left: initial;
}
.ce-popover {
border-radius: 12px;
}
.cdx-search-field { .cdx-search-field {
border: none; border: none;
} }
+3 -3
View File
@@ -1896,9 +1896,9 @@
integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==
"@types/node@*": "@types/node@*":
version "25.0.7" version "25.0.8"
resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.7.tgz#afd2f0d34358631a287c6726dabe0c845abc2bae" resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.8.tgz#e54e00f94fe1db2497b3e42d292b8376a2678c8d"
integrity sha512-C/er7DlIZgRJO7WtTdYovjIFzGsz0I95UlMyR9anTb4aCpBSRWe5Jc1/RvLKUfzmOxHPGjSE5+63HgLtndxU4w== integrity sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg==
dependencies: dependencies:
undici-types "~7.16.0" undici-types "~7.16.0"
@@ -73,7 +73,7 @@
], ],
"index_web_pages_for_search": 1, "index_web_pages_for_search": 1,
"links": [], "links": [],
"modified": "2025-12-04 12:53:38.246250", "modified": "2026-01-14 08:53:16.672825",
"modified_by": "sayali@frappe.io", "modified_by": "sayali@frappe.io",
"module": "LMS", "module": "LMS",
"name": "LMS Batch Enrollment", "name": "LMS Batch Enrollment",
@@ -108,6 +108,18 @@
"if_owner": 1, "if_owner": 1,
"read": 1, "read": 1,
"role": "LMS Student" "role": "LMS Student"
},
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Batch Evaluator",
"share": 1,
"write": 1
} }
], ],
"row_format": "Dynamic", "row_format": "Dynamic",
@@ -76,7 +76,7 @@
"grid_page_length": 50, "grid_page_length": 50,
"index_web_pages_for_search": 1, "index_web_pages_for_search": 1,
"links": [], "links": [],
"modified": "2025-05-21 15:58:51.667270", "modified": "2026-01-14 08:53:38.088168",
"modified_by": "sayali@frappe.io", "modified_by": "sayali@frappe.io",
"module": "LMS", "module": "LMS",
"name": "LMS Batch Feedback", "name": "LMS Batch Feedback",
@@ -105,6 +105,30 @@
"role": "LMS Student", "role": "LMS Student",
"share": 1, "share": 1,
"write": 1 "write": 1
},
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Moderator",
"share": 1,
"write": 1
},
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Batch Evaluator",
"share": 1,
"write": 1
} }
], ],
"row_format": "Dynamic", "row_format": "Dynamic",
@@ -177,7 +177,7 @@
"link_fieldname": "live_class" "link_fieldname": "live_class"
} }
], ],
"modified": "2025-05-27 14:44:35.679712", "modified": "2026-01-14 08:54:07.684781",
"modified_by": "sayali@frappe.io", "modified_by": "sayali@frappe.io",
"module": "LMS", "module": "LMS",
"name": "LMS Live Class", "name": "LMS Live Class",
@@ -215,6 +215,18 @@
"report": 1, "report": 1,
"role": "LMS Student", "role": "LMS Student",
"share": 1 "share": 1
},
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Batch Evaluator",
"share": 1,
"write": 1
} }
], ],
"row_format": "Dynamic", "row_format": "Dynamic",
@@ -155,11 +155,17 @@ def create_attendance(live_class, data):
doc = frappe.new_doc("LMS Live Class Participant") doc = frappe.new_doc("LMS Live Class Participant")
doc.live_class = live_class.name doc.live_class = live_class.name
doc.member = participant.get("user_email") doc.member = participant.get("user_email")
doc.joined_at = participant.get("join_time") doc.joined_at = get_datetime(participant.get("join_time"))
doc.left_at = participant.get("leave_time") doc.left_at = get_datetime(participant.get("leave_time"))
doc.duration = participant.get("duration") doc.duration = get_minutes(participant.get("duration"))
doc.insert() doc.insert()
def update_attendees_count(live_class, data): def update_attendees_count(live_class, data):
frappe.db.set_value("LMS Live Class", live_class.name, "attendees", len(data)) frappe.db.set_value("LMS Live Class", live_class.name, "attendees", len(data))
def get_minutes(duration_in_seconds):
if duration_in_seconds:
return int(duration_in_seconds) // 60
return 0
@@ -89,8 +89,8 @@
"grid_page_length": 50, "grid_page_length": 50,
"index_web_pages_for_search": 1, "index_web_pages_for_search": 1,
"links": [], "links": [],
"modified": "2025-05-27 22:32:24.196643", "modified": "2026-01-14 08:54:21.421321",
"modified_by": "Administrator", "modified_by": "sayali@frappe.io",
"module": "LMS", "module": "LMS",
"name": "LMS Live Class Participant", "name": "LMS Live Class Participant",
"owner": "Administrator", "owner": "Administrator",
@@ -106,6 +106,30 @@
"role": "System Manager", "role": "System Manager",
"share": 1, "share": 1,
"write": 1 "write": 1
},
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Moderator",
"share": 1,
"write": 1
},
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Batch Evaluator",
"share": 1,
"write": 1
} }
], ],
"row_format": "Dynamic", "row_format": "Dynamic",
+1 -1
View File
@@ -66,4 +66,4 @@ indent-style = "tab"
docstring-code-format = true docstring-code-format = true
[tool.bench.frappe-dependencies] [tool.bench.frappe-dependencies]
frappe = ">=15.0.0,<17.0.0" frappe = ">=15.0.0,<17.0.0-dev"