mirror of
https://github.com/lllin000/PaperForge.git
synced 2026-07-22 06:50:53 +00:00
fix(base): use configured folder filter for fresh base views
This commit is contained in:
parent
8d9aef1516
commit
3ed73a434f
3 changed files with 6 additions and 5 deletions
|
|
@ -263,7 +263,7 @@ def _inject_widths_into_block(text: str, widths: dict[str, int]) -> str:
|
|||
return "\n".join(result)
|
||||
|
||||
|
||||
def merge_base_views(existing_content: str | None, new_views: list[dict]) -> str:
|
||||
def merge_base_views(existing_content: str | None, new_views: list[dict], folder_filter: str = "") -> str:
|
||||
"""Incrementally merge standard PaperForge views into an existing .base file.
|
||||
|
||||
Strategy:
|
||||
|
|
@ -277,6 +277,7 @@ def merge_base_views(existing_content: str | None, new_views: list[dict]) -> str
|
|||
Args:
|
||||
existing_content: Raw text of existing .base file (or None/empty for fresh generation).
|
||||
new_views: List of 8 view dicts from build_base_views().
|
||||
folder_filter: Vault-relative folder path for file.inFolder() (used for fresh generation).
|
||||
|
||||
Returns:
|
||||
Merged .base file content with PaperForge views updated, user views preserved.
|
||||
|
|
@ -315,7 +316,7 @@ def merge_base_views(existing_content: str | None, new_views: list[dict]) -> str
|
|||
fresh_views_yaml = _render_views_section(new_views)
|
||||
return f"""filters:
|
||||
and:
|
||||
- file.inFolder("{new_views[0]["name"]}")
|
||||
- file.inFolder("{folder_filter}")
|
||||
- file.ext == "md"
|
||||
- !zotero_key.isEmpty()
|
||||
{PROPERTIES_YAML}
|
||||
|
|
|
|||
|
|
@ -234,7 +234,7 @@ views:
|
|||
- title
|
||||
"""
|
||||
views = build_base_views("骨科")
|
||||
result = merge_base_views(existing, views)
|
||||
result = merge_base_views(existing, views, folder_filter="Resources/Literature/骨科")
|
||||
|
||||
assert "My Custom View" in result, "User view was lost"
|
||||
assert "推荐分析" in result
|
||||
|
|
@ -243,7 +243,7 @@ views:
|
|||
def test_merge_base_views_first_run_generates_fresh(self):
|
||||
"""merge_base_views with no existing content generates fresh YAML."""
|
||||
views = build_base_views("骨科")
|
||||
result = merge_base_views(None, views)
|
||||
result = merge_base_views(None, views, folder_filter="Resources/Literature/骨科")
|
||||
|
||||
assert "views:" in result
|
||||
assert "type: table" in result
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ class TestBuildBaseViews:
|
|||
|
||||
def test_properties_yaml_updated(self):
|
||||
from paperforge.worker.base_views import merge_base_views
|
||||
fresh = merge_base_views(None, build_base_views("骨科"))
|
||||
fresh = merge_base_views(None, build_base_views("骨科"), folder_filter="Resources/Literature/骨科")
|
||||
assert "lifecycle:" not in fresh
|
||||
assert "maturity_level:" not in fresh
|
||||
assert "next_step:" not in fresh
|
||||
|
|
|
|||
Loading…
Reference in a new issue