fix: tree detection on cat edit

This commit is contained in:
Thibaut Valentin 2026-02-05 22:32:31 +01:00
parent b37902466c
commit 7dab5b8880
2 changed files with 24 additions and 3 deletions

View File

@ -55,6 +55,9 @@ public class RCategorie {
@Inject @Inject
CardRepository cardRepository; CardRepository cardRepository;
@Inject
CatPresetRepository catPresetRepository;
@Inject @Inject
ResultService resultService; ResultService resultService;
@ -124,13 +127,21 @@ public class RCategorie {
@WSReceiver(code = "updateCategory", permission = PermLevel.ADMIN) @WSReceiver(code = "updateCategory", permission = PermLevel.ADMIN)
public Uni<Void> updateCategory(WebSocketConnection connection, JustCategorie categorie) { public Uni<Void> updateCategory(WebSocketConnection connection, JustCategorie categorie) {
return getById(categorie.id, connection) return getById(categorie.id, connection)
.call(cat -> {
if (categorie.preset() == null) {
cat.setPreset(null);
return Uni.createFrom().item(cat);
} else {
return catPresetRepository.findById(categorie.preset().getId())
.invoke(cat::setPreset);
}
})
.chain(cat -> { .chain(cat -> {
cat.setName(categorie.name); cat.setName(categorie.name);
cat.setLiceName(categorie.liceName); cat.setLiceName(categorie.liceName);
cat.setType(categorie.type); cat.setType(categorie.type);
cat.setTreeAreClassement(categorie.treeAreClassement); cat.setTreeAreClassement(categorie.treeAreClassement);
cat.setFullClassement(categorie.fullClassement); cat.setFullClassement(categorie.fullClassement);
// cat.setPreset(cat.getPreset()); //TODO preset update
return Panache.withTransaction(() -> categoryRepository.persist(cat)); return Panache.withTransaction(() -> categoryRepository.persist(cat));
}) })
.call(cat -> { .call(cat -> {

View File

@ -622,7 +622,12 @@ function ModalContent({state, setCatId, setConfirm, confirmRef}) {
setClassement(state.treeAreClassement !== undefined && state.treeAreClassement !== false); setClassement(state.treeAreClassement !== undefined && state.treeAreClassement !== false);
setFullClassement(state.fullClassement !== undefined && state.fullClassement !== false); setFullClassement(state.fullClassement !== undefined && state.fullClassement !== false);
const trees_ = state?.trees ? state.trees.filter(t => t.level > 0) : null; let trees_ = []
for (let i = 0; i < state?.raw_trees?.length; i++) {
if (state.raw_trees.at(i).level > 0) {
trees_.push(state.trees.at(i))
}
}
if (trees_ && trees_.length >= 1) { if (trees_ && trees_.length >= 1) {
const tree = trees_[0]; const tree = trees_[0];
setSize(tree.getMaxChildrenAtDepth(tree.death() - 1) * 2); setSize(tree.getMaxChildrenAtDepth(tree.death() - 1) * 2);
@ -655,7 +660,12 @@ function ModalContent({state, setCatId, setConfirm, confirmRef}) {
return; return;
} }
const trees_ = state?.trees ? state.trees.filter(t => t.level > 0) : null; let trees_ = []
for (let i = 0; i < state?.raw_trees?.length; i++) {
if (state.raw_trees.at(i).level > 0) {
trees_.push(state.trees.at(i))
}
}
if (state?.id) { if (state?.id) {
const applyChanges = () => { const applyChanges = () => {
const newData = { const newData = {