Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
math_tutor_dev
public_math_tutor
Commits
6f01dbda
Commit
6f01dbda
authored
Feb 25, 2026
by
Kantz
Browse files
Anzeige von Aufgaben-Quellen überarbeitet
parent
b055a154
Changes
4
Hide whitespace changes
Inline
Side-by-side
math-tutor/backend/app/deterministic_services/vector_store.py
View file @
6f01dbda
...
...
@@ -597,7 +597,7 @@ def load_children_for_subsections(
rows
=
cur
.
fetchall
()
children
=
[
_row_to_retrieved
(
row
)
for
row
in
rows
]
return
_retrivla_to_sources
({
"child
ren_from_subsection
s"
:
children
})
return
_retrivla_to_sources
({
"
task_
childs"
:
children
})
def
merge_sources
(
primary
:
List
[
Source
],
additional
:
List
[
Source
])
->
List
[
Source
]:
...
...
math-tutor/frontend/src/components/Retrieval/DocPanel.tsx
View file @
6f01dbda
...
...
@@ -22,6 +22,7 @@ export type RetrievedDoc = {
type
DocPanelProps
=
{
directChildren
:
RetrievedDoc
[];
taskChildren
:
RetrievedDoc
[];
indirectChildren
:
RetrievedDoc
[];
subsections
:
RetrievedDoc
[];
sections
:
RetrievedDoc
[];
...
...
@@ -98,6 +99,7 @@ const renderGroup = (
export
default
function
DocPanel
({
directChildren
,
taskChildren
,
indirectChildren
,
subsections
,
sections
,
...
...
@@ -108,6 +110,7 @@ export default function DocPanel({
}:
DocPanelProps
)
{
const
total
=
directChildren
.
length
+
taskChildren
.
length
+
indirectChildren
.
length
+
subsections
.
length
+
sections
.
length
;
...
...
@@ -121,6 +124,7 @@ export default function DocPanel({
<
div
className
=
"retrieval-state"
>
{
t
(
"
noResultsYet
"
)
}
</
div
>
)
:
null
}
{
renderGroup
(
t
(
"
directChildren
"
),
directChildren
,
onCiteDoc
,
onInspectDoc
)
}
{
renderGroup
(
t
(
"
taskChildren
"
),
taskChildren
,
onCiteDoc
,
onInspectDoc
)
}
{
renderGroup
(
t
(
"
indirectChildren
"
),
indirectChildren
,
onCiteDoc
,
onInspectDoc
)
}
{
renderGroup
(
t
(
"
subsectionSummary
"
),
subsections
,
onCiteDoc
,
onInspectDoc
)
}
{
renderGroup
(
t
(
"
sectionSummary
"
),
sections
,
onCiteDoc
,
onInspectDoc
)
}
...
...
math-tutor/frontend/src/i18n.ts
View file @
6f01dbda
...
...
@@ -17,6 +17,7 @@ const translations = {
newChat
:
"
New Chat
"
,
loading
:
"
Loading...
"
,
directChildren
:
"
Direct children
"
,
taskChildren
:
"
Task sources
"
,
indirectChildren
:
"
Indirect children
"
,
subsectionSummary
:
"
Subsection summary
"
,
sectionSummary
:
"
Section summary
"
,
...
...
@@ -64,6 +65,7 @@ const translations = {
newChat
:
"
neuer Chat
"
,
loading
:
"
Lade...
"
,
directChildren
:
"
Direkte Quellen
"
,
taskChildren
:
"
Aufgaben-Quellen
"
,
indirectChildren
:
"
Indirekte Quellen
"
,
subsectionSummary
:
"
Unterabschnitt-Zusammenfassung
"
,
sectionSummary
:
"
Abschnitt-Zusammenfassung
"
,
...
...
math-tutor/frontend/src/pages/App.tsx
View file @
6f01dbda
...
...
@@ -133,6 +133,7 @@ export default function App() {
const
[
isSidebarOpen
,
setIsSidebarOpen
]
=
useState
(
false
);
const
[
isCanvasVisible
,
setIsCanvasVisible
]
=
useState
(
false
);
const
[
directChildren
,
setDirectChildren
]
=
useState
<
RetrievedDoc
[]
>
([]);
const
[
taskChildren
,
setTaskChildren
]
=
useState
<
RetrievedDoc
[]
>
([]);
const
[
indirectChildren
,
setIndirectChildren
]
=
useState
<
RetrievedDoc
[]
>
([]);
const
[
subsections
,
setSubsections
]
=
useState
<
RetrievedDoc
[]
>
([]);
const
[
sections
,
setSections
]
=
useState
<
RetrievedDoc
[]
>
([]);
...
...
@@ -154,6 +155,7 @@ export default function App() {
const
bySlug
:
Record
<
string
,
RetrievedDoc
>
=
{};
const
allDocs
=
[
...
directChildren
,
...
taskChildren
,
...
indirectChildren
,
...
subsections
,
...
sections
,
...
...
@@ -190,7 +192,7 @@ export default function App() {
});
return
{
bySourceKey
,
bySlug
};
},
[
directChildren
,
indirectChildren
,
subsections
,
sections
]);
},
[
directChildren
,
taskChildren
,
indirectChildren
,
subsections
,
sections
]);
const
selectedTask
=
useMemo
<
SelectedTask
|
null
>
(()
=>
{
if
(
!
selectedTaskRef
)
{
...
...
@@ -424,6 +426,7 @@ export default function App() {
const
sources
:
ContextSource
[]
=
await
contextResponse
.
json
();
const
nextDirect
:
RetrievedDoc
[]
=
[];
const
nextTask
:
RetrievedDoc
[]
=
[];
const
nextIndirect
:
RetrievedDoc
[]
=
[];
const
nextSubsections
:
RetrievedDoc
[]
=
[];
const
nextSections
:
RetrievedDoc
[]
=
[];
...
...
@@ -437,6 +440,9 @@ export default function App() {
case
"
children_expanded
"
:
nextIndirect
.
push
(
doc
);
break
;
case
"
task_childs
"
:
nextTask
.
push
(
doc
);
break
;
case
"
subsections
"
:
nextSubsections
.
push
(
doc
);
break
;
...
...
@@ -452,6 +458,7 @@ export default function App() {
});
setDirectChildren
(
nextDirect
);
setTaskChildren
(
nextTask
);
setIndirectChildren
(
nextIndirect
);
setSubsections
(
nextSubsections
);
setSections
(
nextSections
);
...
...
@@ -493,6 +500,7 @@ export default function App() {
setMessages
(
initialMessages
);
setDraft
(
""
);
setDirectChildren
([]);
setTaskChildren
([]);
setIndirectChildren
([]);
setSubsections
([]);
setSections
([]);
...
...
@@ -755,6 +763,7 @@ export default function App() {
<
DocPanel
directChildren
=
{
directChildren
}
taskChildren
=
{
taskChildren
}
indirectChildren
=
{
indirectChildren
}
subsections
=
{
subsections
}
sections
=
{
sections
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment