v9d Phase 2d: Vitals Module Refactoring (Baseline + Blood Pressure) #22
|
|
@ -21,9 +21,9 @@ export default function AdminTrainingProfiles() {
|
|||
try {
|
||||
setLoading(true)
|
||||
const [typesData, statsData, templatesData] = await Promise.all([
|
||||
api.get('/admin/training-types'),
|
||||
api.get('/admin/training-types/profiles/stats'),
|
||||
api.get('/admin/training-types/profiles/templates')
|
||||
api.adminListTrainingTypes(),
|
||||
api.getProfileStats(),
|
||||
api.getProfileTemplates()
|
||||
])
|
||||
setTrainingTypes(typesData)
|
||||
setStats(statsData)
|
||||
|
|
@ -55,7 +55,7 @@ export default function AdminTrainingProfiles() {
|
|||
const profile = JSON.parse(profileJson)
|
||||
|
||||
// Update training type
|
||||
await api.put(`/admin/training-types/${selectedType.id}`, { profile })
|
||||
await api.adminUpdateTrainingType(selectedType.id, { profile })
|
||||
|
||||
setSuccess(`Profil für "${selectedType.name_de}" gespeichert`)
|
||||
closeEditor()
|
||||
|
|
@ -69,9 +69,7 @@ export default function AdminTrainingProfiles() {
|
|||
if (!confirm(`Template "${templateKey}" auf diesen Trainingstyp anwenden?`)) return
|
||||
|
||||
try {
|
||||
await api.post(`/admin/training-types/${typeId}/profile/apply-template`, {
|
||||
template_key: templateKey
|
||||
})
|
||||
await api.applyProfileTemplate(typeId, templateKey)
|
||||
setSuccess('Template erfolgreich angewendet')
|
||||
load()
|
||||
} catch (e) {
|
||||
|
|
@ -83,7 +81,7 @@ export default function AdminTrainingProfiles() {
|
|||
if (!confirm('Alle Aktivitäten neu evaluieren? Das kann einige Sekunden dauern.')) return
|
||||
|
||||
try {
|
||||
const result = await api.post('/evaluation/batch')
|
||||
const result = await api.batchEvaluateActivities()
|
||||
setSuccess(
|
||||
`Batch-Evaluation abgeschlossen: ${result.stats.evaluated} evaluiert, ` +
|
||||
`${result.stats.skipped} übersprungen, ${result.stats.errors} Fehler`
|
||||
|
|
|
|||
|
|
@ -214,6 +214,14 @@ export const api = {
|
|||
adminDeleteTrainingType: (id) => req(`/admin/training-types/${id}`, {method:'DELETE'}),
|
||||
getAbilitiesTaxonomy: () => req('/admin/training-types/taxonomy/abilities'),
|
||||
|
||||
// Admin: Training Type Profiles (Phase 2 #15)
|
||||
getProfileStats: () => req('/admin/training-types/profiles/stats'),
|
||||
getProfileTemplates: () => req('/admin/training-types/profiles/templates'),
|
||||
getProfileTemplate: (key) => req(`/admin/training-types/profiles/templates/${key}`),
|
||||
applyProfileTemplate: (id,templateKey) => req(`/admin/training-types/${id}/profile/apply-template`, json({template_key: templateKey})),
|
||||
getTrainingParameters: () => req('/evaluation/parameters'),
|
||||
batchEvaluateActivities: () => req('/evaluation/batch', {method:'POST'}),
|
||||
|
||||
// Admin: Activity Type Mappings (v9d Phase 1b - Learnable System)
|
||||
adminListActivityMappings: (profileId, globalOnly) => req(`/admin/activity-mappings${profileId?'?profile_id='+profileId:''}${globalOnly?'?global_only=true':''}`),
|
||||
adminGetActivityMapping: (id) => req(`/admin/activity-mappings/${id}`),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user