fix(interface): 界面兼容性改进

This commit is contained in:
2026-01-04 04:14:57 +08:00
parent 5d883b015e
commit c585c79e73
6 changed files with 54 additions and 10 deletions

View File

@@ -2,4 +2,8 @@ schedule = ["quick_review", "recognition", "final_review"]
[phases] [phases]
quick_review = [["FillBlank", "1.0"], ["SelectMeaning", "0.5"], ["Recognition", "1.0"]] quick_review = [["FillBlank", "1.0"], ["SelectMeaning", "0.5"], ["Recognition", "1.0"]]
recognition = [["Recognition", "1.0"]] recognition = [["Recognition", "1.0"]]
final_review = [["FillBlank", "0.7"], ["SelectMeaning", "0.7"], ["Recognition", "1.0"]] final_review = [["FillBlank", "0.7"], ["SelectMeaning", "0.7"], ["Recognition", "1.0"]]
[annotation]
"quick_review" = "复习旧知"
"recognition" = "新知识"
"final_review" = "总复习"

View File

@@ -79,7 +79,9 @@ class MemScreen(Screen):
# logger.debug(shim.puzzle2widget[puzzle_debug["puzzle"]]) # logger.debug(shim.puzzle2widget[puzzle_debug["puzzle"]])
def _get_progress_text(self): def _get_progress_text(self):
return f"当前进度: {self.procession.process() + 1}/{self.procession.total_length()}" s = f"阶段: {self.procession.phase.name}\n"
s += f"当前进度: {self.procession.process() + 1}/{self.procession.total_length()}"
return s
def update_display(self): def update_display(self):
"""更新进度显示""" """更新进度显示"""
@@ -142,7 +144,7 @@ class MemScreen(Screen):
ret = self.procession.forward(1) ret = self.procession.forward(1)
if ret == 0: # 若结束了此次队列 if ret == 0: # 若结束了此次队列
self.update_state() self.update_state()
if self.procession == 0: # 若所有队列都结束了 if self.procession.phase == PhaserState.FINISHED: # 若所有队列都结束了
logger.debug(f"记忆进程结束") logger.debug(f"记忆进程结束")
self.mount_finished_widget() self.mount_finished_widget()
return return

View File

@@ -53,7 +53,7 @@ class ClozePuzzle(BasePuzzleWidget):
self.hashmap = dict() self.hashmap = dict()
def _load(self): def _load(self):
setting = self.atom.registry["orbital"]["puzzles"][self.alia] setting = self.atom.registry["nucleon"]["puzzles"][self.alia]
self.puzzle = pz.ClozePuzzle( self.puzzle = pz.ClozePuzzle(
text=setting["text"], text=setting["text"],
delimiter=setting["delimiter"], delimiter=setting["delimiter"],

View File

@@ -61,11 +61,7 @@ class MCQPuzzle(BasePuzzleWidget):
self.puzzle.refresh() self.puzzle.refresh()
def compose(self): def compose(self):
setting: Setting = self.atom.registry["nucleon"].metadata["orbital"]["puzzles"][ setting: Setting = self.atom.registry["nucleon"]["puzzles"][self.alia]
self.alia
]
logger.debug(f"Puzzle Setting: {setting}")
logger.debug(f"WIRED INDEX: {len(self.inputlist)}")
if len(self.inputlist) > len(self.puzzle.options): if len(self.inputlist) > len(self.puzzle.options):
logger.debug("ERR IDX") logger.debug("ERR IDX")
logger.debug(self.inputlist) logger.debug(self.inputlist)

View File

@@ -0,0 +1,41 @@
from heurams.kernel.particles import orbital
from .electron import Electron
from .nucleon import Nucleon
from .atom import Atom
orbital_placeholder = {
"schedule": ["quick_review", "recognition", "final_review"],
"phases": {
"quick_review": [
["FillBlank", 1.0],
["SelectMeaning", 0.5],
["Recognition", 1.0],
],
"recognition": [["Recognition", 1.0]],
"final_review": [
["FillBlank", 0.7],
["SelectMeaning", 0.7],
["Recognition", 1.0],
],
},
}
class NucleonPlaceholder(Nucleon):
def __init__(self):
super().__init__("__placeholder__", {}, {})
def __getitem__(self, key):
return f"__placeholder__ attempted {key}"
class ElectronPlaceholder(Electron):
def __init__(self):
super().__init__("__placeholder__", {"": {"": ""}}, "")
class AtomPlaceholder(Atom):
def __init__(self):
super().__init__(
NucleonPlaceholder(), ElectronPlaceholder(), orbital_placeholder
)

View File

@@ -1,4 +1,5 @@
import heurams.kernel.particles as pt import heurams.kernel.particles as pt
from heurams.kernel.particles.placeholders import AtomPlaceholder
from heurams.services.logger import get_logger from heurams.services.logger import get_logger
from transitions import Machine from transitions import Machine
@@ -124,7 +125,7 @@ class Phaser(Machine):
# 所有Procession都已完成 # 所有Procession都已完成
self.to_finished() self.to_finished()
logger.debug("所有 Procession 已完成, 状态设置为 FINISHED") logger.debug("所有 Procession 已完成, 状态设置为 FINISHED")
return None return Procession([AtomPlaceholder()], PhaserState.FINISHED)
def __repr__(self): def __repr__(self):
from heurams.services.textproc import truncate from heurams.services.textproc import truncate