diff --git a/frontend/src/pages/Batches.vue b/frontend/src/pages/Batches.vue
index 9e69eb72..f2868bb4 100644
--- a/frontend/src/pages/Batches.vue
+++ b/frontend/src/pages/Batches.vue
@@ -55,7 +55,7 @@
@@ -101,7 +101,8 @@ const categories = ref([])
const currentCategory = ref(null)
const title = ref('')
const filters = ref({})
-const currentTab = ref('All')
+const currentTab = ref(user.data?.is_student ? 'All' : 'Upcoming')
+const orderBy = ref('start_date')
onMounted(() => {
setFiltersFromQuery()
@@ -141,6 +142,7 @@ const updateBatches = () => {
updateFilters()
batches.update({
filters: filters.value,
+ orderBy: orderBy.value,
})
batches.reload()
}
@@ -170,18 +172,22 @@ const updateTitleFilter = () => {
}
const updateTabFilter = () => {
+ orderBy.value = 'start_date'
if (!user.data) {
return
}
if (currentTab.value == 'Enrolled' && user.data?.is_student) {
filters.value['enrolled'] = 1
+ orderBy.value = 'start_date desc'
} else if (user.data?.is_student) {
delete filters.value['enrolled']
} else {
delete filters.value['start_date']
delete filters.value['published']
+ orderBy.value = 'start_date desc'
if (currentTab.value == 'Upcoming') {
filters.value['start_date'] = ['>=', dayjs().format('YYYY-MM-DD')]
+ orderBy.value = 'start_date'
} else if (currentTab.value == 'Archived') {
filters.value['start_date'] = ['<', dayjs().format('YYYY-MM-DD')]
} else if (currentTab.value == 'Unpublished') {
diff --git a/lms/lms/utils.py b/lms/lms/utils.py
index 24411553..bc02ac79 100644
--- a/lms/lms/utils.py
+++ b/lms/lms/utils.py
@@ -1851,7 +1851,7 @@ def enroll_in_program_course(program, course):
@frappe.whitelist(allow_guest=True)
-def get_batches(filters=None, start=0, page_length=20):
+def get_batches(filters=None, start=0, page_length=20, order_by="start_date"):
if not filters:
filters = {}
@@ -1884,7 +1884,7 @@ def get_batches(filters=None, start=0, page_length=20):
"published",
"category",
],
- order_by="start_date desc",
+ order_by=order_by,
start=start,
page_length=page_length,
)