TEST UPD
- roles
This commit is contained in:
@@ -205,10 +205,11 @@ async function loadData() {
|
||||
try {
|
||||
loading.value = true
|
||||
|
||||
const [logsResponse, usersResponse] = await Promise.all([
|
||||
logsResource.fetch(),
|
||||
usersResource.fetch()
|
||||
])
|
||||
const [logsResponse, usersResponse, rolesResponse] = await Promise.all([
|
||||
logsResource.fetch(),
|
||||
usersResource.fetch(),
|
||||
rolesResource.fetch()
|
||||
])
|
||||
|
||||
console.log("Energy Point Log:", logsResponse)
|
||||
console.log("Users с ролями:", usersResponse)
|
||||
@@ -220,14 +221,22 @@ async function loadData() {
|
||||
console.warn("ВНИМАНИЕ: Не загружены пользователи!")
|
||||
}
|
||||
|
||||
const usersMap = {}
|
||||
usersResponse.forEach(u => {
|
||||
usersMap[u.name] = {
|
||||
full_name: u.full_name || u.name,
|
||||
username: u.username || u.name.split('@')[0],
|
||||
roles: (u.roles || []).map(r => r.role)
|
||||
}
|
||||
})
|
||||
// Собираем роли
|
||||
const rolesMap = {}
|
||||
rolesResponse.forEach(r => {
|
||||
if (!rolesMap[r.parent]) rolesMap[r.parent] = []
|
||||
rolesMap[r.parent].push(r.role)
|
||||
})
|
||||
|
||||
// Формируем usersMap
|
||||
const usersMap = {}
|
||||
usersResponse.forEach(u => {
|
||||
usersMap[u.name] = {
|
||||
full_name: u.full_name || u.name,
|
||||
username: u.username || u.name.split('@')[0],
|
||||
roles: rolesMap[u.name] || []
|
||||
}
|
||||
})
|
||||
|
||||
const pointsMap = {}
|
||||
logsResponse.forEach(log => {
|
||||
@@ -272,14 +281,24 @@ const usersResource = createResource({
|
||||
url: "frappe.client.get_list",
|
||||
params: {
|
||||
doctype: "User",
|
||||
fields: ["name", "full_name", "username", "roles"],
|
||||
fields: ["name", "full_name", "username"],
|
||||
filters: [["enabled", "=", 1]],
|
||||
limit_page_length: 2000
|
||||
},
|
||||
auto: false,
|
||||
onError: (err) => console.error("Ошибка загрузки Users:", err)
|
||||
auto: false
|
||||
})
|
||||
|
||||
const rolesResource = createResource({
|
||||
url: "frappe.client.get_list",
|
||||
params: {
|
||||
doctype: "Has Role",
|
||||
fields: ["parent", "role"],
|
||||
limit_page_length: 5000
|
||||
},
|
||||
auto: false
|
||||
})
|
||||
|
||||
|
||||
// Остальные computed без изменений
|
||||
const filteredLeaderboard = computed(() =>
|
||||
leaderboard.value.filter(u => u.roles.includes(selectedRole.value))
|
||||
|
||||
Reference in New Issue
Block a user