feat: Add kanken completion percentage (kinda wip)
This commit is contained in:
parent
1f40c781cd
commit
8f24f23130
|
@ -61,7 +61,7 @@ class KanjiController extends AbstractController
|
|||
|
||||
if (!$force and file_exists($cacheFile)) return require $cacheFile;
|
||||
|
||||
$ret = [];
|
||||
$ret = ['lists' => []];
|
||||
|
||||
$lists = [
|
||||
'sn' => $this->anki->getKnownSnKanjiCounts(),
|
||||
|
@ -70,6 +70,8 @@ class KanjiController extends AbstractController
|
|||
'ignored' => $this->getIgnoredList(),
|
||||
];
|
||||
|
||||
$ret['lists'] = $lists;
|
||||
|
||||
// @formatter:off
|
||||
$storedLists = [
|
||||
'taiwan', 'bushu', 'kyoyou', 'kyuujitai', 'kanken', 'hsk', 'zhcn',
|
||||
|
@ -77,13 +79,19 @@ class KanjiController extends AbstractController
|
|||
];
|
||||
// @formatter:on
|
||||
foreach ($storedLists as $storedName) {
|
||||
$ret['lists'][$storedName] = [];
|
||||
$storedList = $this->charList->getList($storedName);
|
||||
|
||||
// Simple list
|
||||
if (key_exists('chars', $storedList)) {
|
||||
$ret['lists'][$storedName] = $storedList['chars'];
|
||||
$lists[$storedName] = $storedList['chars'];
|
||||
} else {
|
||||
foreach ($storedList['sublists'] as $subname => $sublist) {
|
||||
$ret['lists'][$storedName] = array_merge(
|
||||
$ret['lists'][$storedName],
|
||||
$sublist['chars'],
|
||||
);
|
||||
$lists["$storedName-$subname"] = $sublist['chars'];
|
||||
}
|
||||
}
|
||||
|
@ -134,6 +142,7 @@ class KanjiController extends AbstractController
|
|||
}
|
||||
|
||||
return $this->render(self::tmpl('grid'), [
|
||||
'char_info' => $charInfo,
|
||||
'characters' => $chars,
|
||||
'completed' => $completedRows,
|
||||
]);
|
||||
|
|
|
@ -18,6 +18,7 @@ class AppExtension extends AbstractExtension
|
|||
// Reference: https://twig.symfony.com/doc/3.x/advanced.html#automatic-escaping
|
||||
new TwigFilter('basename', basename(...)),
|
||||
new TwigFilter('ruby', self::ankiRubyToHtml(...)),
|
||||
new TwigFilter('intersect_key', array_intersect_key(...))
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
@ -141,5 +141,14 @@
|
|||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div class="bg-body border-top p-2 sticky-bottom">
|
||||
{% set learnt_kanken = char_info.lists.unicode|intersect_key(char_info.lists.kanken)|length %}
|
||||
{% set total_kanken = char_info.lists.kanken|length %}
|
||||
Kanken {{ learnt_kanken }}/{{ total_kanken }} ({{ ((learnt_kanken/total_kanken) * 100)|number_format(2) }}%)
|
||||
|
|
||||
{% set sn_kanken = char_info.lists.sn|intersect_key(char_info.lists.kanken)|length %}
|
||||
{{ sn_kanken }}/{{ total_kanken }} ({{ ((sn_kanken/total_kanken) * 100)|number_format(2) }}%)
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
Loading…
Reference in New Issue