feat(backend+frontend): add is_regex support to dictionary entries
Add support for regex-based dictionary entries across the full stack: Backend: - DictionaryEntry model: add is_regex column (Boolean, default False) - DictionaryEntryCRUD: validate regex on add_entry(), compile on creation - _enforce_dictionary: match by regex pattern when is_regex=True - dictionary_filter: support is_regex in filter/query - metrics: include is_regex entries in metrics calculations - Alembic migration: 20260604_add_is_regex_to_dictionary_entries - Merge migration: 351afb8f961a (merge is_regex + composite index heads) Frontend: - DictionaryDetailModel: add is_regex field to DictionaryEntry interface, EditForm, and addForm; sync edit/add form state with backend schema
This commit is contained in:
@@ -142,8 +142,7 @@ class TranslationRecord(Base):
|
||||
__table_args__ = (
|
||||
Index("ix_translation_records_run_status", "run_id", "status"),
|
||||
Index("ix_translation_records_source_hash_status", "source_hash", "status"),
|
||||
Index("ix_translation_records_run_source_hash", "run_id", "source_hash",
|
||||
comment="Composite index for NOT EXISTS dedup subquery"),
|
||||
Index("ix_translation_records_run_source_hash", "run_id", "source_hash"),
|
||||
)
|
||||
# #endregion TranslationRecord
|
||||
|
||||
@@ -230,6 +229,7 @@ class DictionaryEntry(Base):
|
||||
context_data = Column(JSON, nullable=True, comment="Structured context for term usage")
|
||||
usage_notes = Column(Text, nullable=True, comment="Usage guidance for the term mapping")
|
||||
has_context = Column(Boolean, default=False, comment="Whether context_data is populated")
|
||||
is_regex = Column(Boolean, default=False, comment="Whether source_term is a regex pattern")
|
||||
context_source = Column(String, nullable=True, comment="auto|auto_with_edits|manual|bulk")
|
||||
origin_source_language = Column(String, nullable=True, comment="Original source language of the term")
|
||||
origin_run_id = Column(String, nullable=True, comment="Run ID from which this correction originated")
|
||||
|
||||
Reference in New Issue
Block a user