feat: course details page
This commit is contained in:
@@ -1,22 +1,19 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { createResource } from 'frappe-ui'
|
||||
import { sessionStore } from './session'
|
||||
import { reactive } from 'vue'
|
||||
|
||||
export const usersStore = defineStore('lms-users', () => {
|
||||
const session = sessionStore()
|
||||
|
||||
let usersByName = reactive({})
|
||||
|
||||
const users = createResource({
|
||||
const user = createResource({
|
||||
url: 'lms.lms.api.get_user_info',
|
||||
cache: 'Users',
|
||||
initialData: [],
|
||||
transform(users) {
|
||||
for (let user of users) {
|
||||
usersByName[user.name] = user
|
||||
auto: true,
|
||||
transform: (data) => {
|
||||
if (data?.name && !usersByName[data.name]) {
|
||||
usersByName[data.name] = data
|
||||
}
|
||||
return users
|
||||
},
|
||||
onError(error) {
|
||||
if (error && error.exc_type === 'AuthenticationError') {
|
||||
@@ -25,27 +22,8 @@ export const usersStore = defineStore('lms-users', () => {
|
||||
},
|
||||
})
|
||||
|
||||
function getUser(email) {
|
||||
if (!email || email === 'sessionUser') {
|
||||
email = session.user
|
||||
}
|
||||
if (!email) {
|
||||
return null
|
||||
}
|
||||
if (!usersByName[email]) {
|
||||
usersByName[email] = {
|
||||
name: email,
|
||||
email: email,
|
||||
full_name: email.split('@')[0],
|
||||
user_image: null,
|
||||
roles: ['LMS Student'],
|
||||
}
|
||||
}
|
||||
return usersByName[email]
|
||||
}
|
||||
|
||||
return {
|
||||
users,
|
||||
getUser,
|
||||
user,
|
||||
usersByName,
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user