diff --git a/export_apkgs.py b/export_apkgs.py index b018d9bd7ff32a145d2e8a949946413f24bbce08..eaedd2e26159a9c507ea5f421fd01e021a14a4b6 100755 --- a/export_apkgs.py +++ b/export_apkgs.py @@ -46,6 +46,7 @@ class ImportCsv(BaseModel): file_patterns: list[str]|None deck_name_pattern: str fields_mapping: list[str] + fields_static: dict[str, str] tags: list[str] class ImportImages(BaseModel): @@ -329,7 +330,8 @@ class ApkgExporter: tmp_deck, import_csv.tags, csv_path, - fields_mapping) + fields_mapping, + import_csv.fields_static) self.move_to_target_decks(col, tmp_deck, deck_name, csv_path) elif 'import_apkg' in content: import_apkg : ImportApkg = content['import_apkg'] @@ -375,7 +377,8 @@ class ApkgExporter: tmp_deck: int, tags: list[str], csv_path: Path, - fields_mapping: list[str]): + fields_mapping: list[str], + fields_static: dict[str, str]): with open(csv_path) as csv_file: reader = csv.reader(csv_file, delimiter=';') for row in reader: @@ -386,6 +389,8 @@ class ApkgExporter: raise Exception(f'CSV row is missing {field} at index {idx}:\n{row}') if field != 'guid': note[field] = row[idx] + for field, value in fields_static.items(): + note[field] = value for tag in tags: note.add_tag(tag) col.add_note(note, tmp_deck) diff --git a/test/fixtures/csv/.apkg-spec.yaml b/test/fixtures/csv/.apkg-spec.yaml index b8ddf0fff8ef68bd64f08e0ad6d269928da01678..0c13501f9f75bfdac9f03ed50a5c173cabd31b30 100644 --- a/test/fixtures/csv/.apkg-spec.yaml +++ b/test/fixtures/csv/.apkg-spec.yaml @@ -15,6 +15,7 @@ content: - guid - Question - Answer + fields_static: {} tags: [] resource_paths: [] diff --git a/test/fixtures/csv_updated_content/.apkg-spec.yaml b/test/fixtures/csv_updated_content/.apkg-spec.yaml index 08ebda763c876be18a70ac08883c17dd6002f6cc..18e0338dcde5da076c9971e9ccbc825d98d3e8aa 100644 --- a/test/fixtures/csv_updated_content/.apkg-spec.yaml +++ b/test/fixtures/csv_updated_content/.apkg-spec.yaml @@ -15,6 +15,7 @@ content: - guid - Question - Answer + fields_static: {} tags: [] resource_paths: []