better change file handling

This commit is contained in:
Robert Nasarek 2026-04-10 07:15:57 +00:00
parent ddc0872bd4
commit 58e99dea65
6 changed files with 534 additions and 526 deletions

8
.gitignore vendored
View file

@ -3,3 +3,11 @@ original_config/**
config_prefixes.json config_prefixes.json
__pycache__ __pycache__
old_recipe_config old_recipe_config
changed_files
ingest
new_recipe_config
changed_files_manifest.csv
new_recipe_not_in_original.csv
deleted_files.csv
ignored_files.yml
recipes/*

View file

@ -19,25 +19,42 @@ This script helps you manage and transfer specific Drupal configuration files by
## Installation and Setup ## Installation and Setup
The script operates in the current working directory where you run it. It will create the following subdirectories if they don't exist: The script operates in the current working directory where you run it. It will create the following subdirectories if they don't exist:
- `original_config/` - Place your source configuration files here - `ingest/` - Drop your exported Drupal config archive here (named `config*.tar.gz`)
- `original_config/` - YAML files are extracted here automatically from the ingest archive
- `new_recipe_config/` - Matched files will be copied here (with UUID and _core removed) - `new_recipe_config/` - Matched files will be copied here (with UUID and _core removed)
- `old_recipe_config/` - Optional: Place previous recipe version here for comparison
- `changed_files/` - Files that changed between versions will be placed here - `changed_files/` - Files that changed between versions will be placed here
- `ignored_files.yml` - Optional: List files to exclude from change tracking - `ignored_files.yml` - Optional: List files to exclude from change tracking
- `deleted_files.csv` - Tracks files that should be deleted - `deleted_files.csv` - Tracks files that should be deleted
## Usage ## Usage
1. Copy or move the script to your working directory (or use the full path to run it) ### Ingest: export from Drupal into `ingest/`
2. Place your source configuration files in the `original_config` directory
3. Run the script: 1. In the Drupal admin UI, open the **full configuration export** page: **Configuration → Development → Configuration synchronization → Export**, then use the **Full archive** export (direct URL path: `admin/config/development/configuration/full/export`).
2. Download the generated archive (a `.tar.gz` of all site configuration).
3. Place that file in the `ingest/` directory under this tools working directory. The filename must match `config*.tar.gz` (for example `config.tar.gz` as downloaded, or a descriptive name like `config-localhost_3001-2026-04-09.tar.gz`).
4. Run `python3 config_selector.py` (or `python3 config_selector.py --force` if `original_config/` already has files and you want to replace them from the new archive).
### Standard run (skip extraction if original_config/ already has files)
```bash ```bash
python3 config_selector.py python3 config_selector.py
``` ```
4. The script will create a default `config_prefixes.json` in the current directory if it doesn't exist ### Force re-extraction from the ingest archive
5. Use the TUI to manage your file selections and copy files
Use `--force` when you have placed a new archive in `ingest/` and want to replace the current `original_config/` contents:
```bash
python3 config_selector.py --force
```
### Workflow
1. Follow **Ingest** above to place a full export `config*.tar.gz` in `ingest/`.
2. Run the script. It extracts the archive into `original_config/` automatically (skipped on subsequent runs unless `--force` is passed).
3. The script will create a default `config_prefixes.json` in the current directory if it doesn't exist.
4. Use the TUI to manage your file selections and copy files.
## Hierarchical Navigation ## Hierarchical Navigation
@ -63,7 +80,7 @@ The Text User Interface provides the following controls:
- **O**: Choose a prefix from the list of unmatched prefixes - **O**: Choose a prefix from the list of unmatched prefixes
- **D**: Delete the selected prefix (in matched view) or add the selected prefix (in unmatched view) - **D**: Delete the selected prefix (in matched view) or add the selected prefix (in unmatched view)
- **C**: Copy all matched files to the new_recipe_config directory (with UUID and _core removal) - **C**: Copy all matched files to the new_recipe_config directory (with UUID and _core removal)
- **M**: Compare old and new recipe configs, track changes and deletions - **M**: Compare committed recipe vs `new_recipe_config`, copy new/modified to `changed_files/`, list deletions
- **S**: Save the current list of prefixes to the JSON file - **S**: Save the current list of prefixes to the JSON file
- **Q**: Quit the application - **Q**: Quit the application
@ -98,16 +115,21 @@ You can modify this file directly or use the TUI to manage the prefixes.
The script can compare configuration files between recipe versions: The script can compare configuration files between recipe versions:
- **M**: Compare old and new recipe configurations - **M**: Compare committed recipe to `new_recipe_config/`
- Compares files in `old_recipe_config/` with `new_recipe_config/` - Baseline: `recipes/wisski_default_data_model/config/` (committed recipe)
- Copies changed files to `changed_files/` directory - **New** files: present in `new_recipe_config/` but not in the committed recipe → copied to `changed_files/` (same layout, including `language/<lang>/…`)
- Tracks deleted files in `deleted_files.csv` - **Modified** files: same relative path in both, different content → copied to `changed_files/`
- **Deleted** files: present in the committed recipe but missing from `new_recipe_config/` → listed in `deleted_files.csv`
- Each compare run **clears** `changed_files/` first, then repopulates it
- `changed_files_manifest.csv` lists every copied path with `kind` = `new` or `modified`
This feature helps you track what has changed between recipe versions and what files need to be removed. Files matched in `ignored_files.yml` are not copied to `changed_files/` (whether new or modified).
This feature helps you track additions, updates, and removals relative to the committed recipe.
## Ignoring Files from Change Tracking ## Ignoring Files from Change Tracking
You can create an `ignored_files.yml` file to prevent specific configuration files from being copied to the `changed_files/` folder during comparison. This is useful when certain files have intentional differences that should not be tracked as changes. You can create an `ignored_files.yml` file to prevent specific configuration files from being copied to the `changed_files/` folder during comparison (for both **new** and **modified** paths). This is useful when certain files have intentional differences or should not be promoted from the export.
Example `ignored_files.yml`: Example `ignored_files.yml`:
@ -120,18 +142,21 @@ another_category:
reason: custom modification required reason: custom modification required
``` ```
Files listed in this YAML will be excluded from the `changed_files/` directory even if they have changed between versions. Files listed in this YAML will be excluded from the `changed_files/` directory even if they are new or changed relative to the committed recipe.
## Directory Structure ## Directory Structure
``` ```
/your/working/directory/ /your/working/directory/
├── config_selector.py # Main script ├── config_selector.py # Main script
├── config_prefixes.json # Configuration prefixes list ├── config_prefixes.json # Configuration prefixes list
├── ignored_files.yml # Optional: List of files to ignore from change tracking ├── ignored_files.yml # Optional: List of files to ignore from change tracking
├── original_config/ # Source directory containing all configuration files ├── ingest/ # Drop config*.tar.gz archives here
├── new_recipe_config/ # Target directory where matched files will be copied (cleaned) ├── original_config/ # Extracted source YAML files (auto-populated from ingest/)
├── old_recipe_config/ # Previous version of recipe config (for comparison) ├── new_recipe_config/ # Target directory where matched files will be copied (cleaned)
├── changed_files/ # Files that have changed between old and new versions ├── recipes/wisski_default_data_model/config/ # Committed recipe config (used as baseline for comparison)
└── deleted_files.csv # List of files that should be deleted from the recipe ├── changed_files/ # New + modified YAML vs committed recipe (cleared each compare)
├── changed_files_manifest.csv # relative_path + kind (new|modified) for changed_files/
├── new_recipe_not_in_original.csv # Paths in new_recipe_config missing from original export
└── deleted_files.csv # Paths in committed recipe missing from new_recipe_config
``` ```

View file

@ -1,18 +1,97 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import os import os
import sys
import json import json
import shutil import shutil
import curses import curses
import re import re
import csv import csv
import filecmp import filecmp
import glob
import tarfile
import yaml import yaml
from typing import List, Dict, Set, Tuple, Optional from typing import List, Dict, Set, Tuple, Optional
# Use current directory instead of hardcoded path # Use current directory instead of hardcoded path.
BASE_DIR = os.getcwd() BASE_DIR = os.getcwd()
INGEST_DIR = os.path.join(BASE_DIR, "ingest")
ORIGINAL_CONFIG_DIR = os.path.join(BASE_DIR, "original_config")
RECIPE_CONFIG_DIR = os.path.join(BASE_DIR, "recipes", "wisski_default_data_model", "config")
def _clear_dir(path: str) -> int:
"""Remove all files and subdirectories inside path. Returns count of removed items."""
if not os.path.isdir(path):
return 0
removedCount = 0
for entry in os.listdir(path):
entryPath = os.path.join(path, entry)
if os.path.isdir(entryPath):
shutil.rmtree(entryPath)
else:
os.remove(entryPath)
removedCount += 1
return removedCount
def ingest_config(force: bool = False) -> None:
"""Extract a config*.tar.gz archive from ingest/ into original_config/.
Skips extraction when YAML files are already present in original_config/,
unless force is True. With --force, original_config/, new_recipe_config/,
and changed_files/ are all cleared before re-extraction.
"""
os.makedirs(ORIGINAL_CONFIG_DIR, exist_ok=True)
existingFiles = [f for f in os.listdir(ORIGINAL_CONFIG_DIR) if f.endswith(".yml")]
if existingFiles and not force:
print(
f"original_config/ already contains {len(existingFiles)} YAML files. "
"Use --force to re-extract."
)
return
archives = sorted(glob.glob(os.path.join(INGEST_DIR, "config*.tar.gz")))
if not archives:
if not existingFiles:
print("No config*.tar.gz found in ingest/ and original_config/ is empty.")
return
# Use the most recently named archive.
archive = archives[-1]
print(f"Extracting {os.path.basename(archive)} to original_config/...")
if force:
_clear_dir(ORIGINAL_CONFIG_DIR)
newRecipeDir = os.path.join(BASE_DIR, "new_recipe_config")
changedFilesDir = os.path.join(BASE_DIR, "changed_files")
cleared = _clear_dir(newRecipeDir)
if cleared:
print(f"Cleared {cleared} items from new_recipe_config/.")
cleared = _clear_dir(changedFilesDir)
if cleared:
print(f"Cleared {cleared} items from changed_files/.")
extractedCount = 0
with tarfile.open(archive, "r:gz") as tar:
for member in tar.getmembers():
if not (member.isfile() and member.name.endswith(".yml")):
continue
# Preserve subdirectory structure (e.g. language/de/foo.yml) but strip
# any leading archive root component that is not part of the config layout.
relPath = member.name.lstrip("./")
destPath = os.path.join(ORIGINAL_CONFIG_DIR, relPath)
os.makedirs(os.path.dirname(destPath), exist_ok=True)
srcFile = tar.extractfile(member)
if srcFile is not None:
with open(destPath, "wb") as dst:
dst.write(srcFile.read())
extractedCount += 1
print(f"Extracted {extractedCount} YAML files to original_config/.")
class ConfigSelector: class ConfigSelector:
def __init__(self, json_path: str, original_config_path: str, config_path: str, def __init__(self, json_path: str, original_config_path: str, config_path: str,
old_recipe_path: str = None, changed_files_path: str = None, deleted_files_csv: str = None, old_recipe_path: str = None, changed_files_path: str = None, deleted_files_csv: str = None,
@ -23,6 +102,8 @@ class ConfigSelector:
self.old_recipe_path = old_recipe_path or os.path.join(BASE_DIR, "old_recipe_config") self.old_recipe_path = old_recipe_path or os.path.join(BASE_DIR, "old_recipe_config")
self.changed_files_path = changed_files_path or os.path.join(BASE_DIR, "changed_files") self.changed_files_path = changed_files_path or os.path.join(BASE_DIR, "changed_files")
self.deleted_files_csv = deleted_files_csv or os.path.join(BASE_DIR, "deleted_files.csv") self.deleted_files_csv = deleted_files_csv or os.path.join(BASE_DIR, "deleted_files.csv")
self.new_recipe_not_in_original_csv = os.path.join(BASE_DIR, "new_recipe_not_in_original.csv")
self.changed_files_manifest_csv = os.path.join(BASE_DIR, "changed_files_manifest.csv")
self.ignored_files_yml = ignored_files_yml or os.path.join(BASE_DIR, "ignored_files.yml") self.ignored_files_yml = ignored_files_yml or os.path.join(BASE_DIR, "ignored_files.yml")
self.prefixes: List[str] = [] self.prefixes: List[str] = []
self.matched_files: Dict[str, List[str]] = {} self.matched_files: Dict[str, List[str]] = {}
@ -61,7 +142,13 @@ class ConfigSelector:
# Iterate through all categories in the YAML. # Iterate through all categories in the YAML.
for category, info in data.items(): for category, info in data.items():
if isinstance(info, dict) and 'name' in info: if isinstance(info, dict) and 'name' in info:
self.ignored_files.add(info['name']) name = info['name']
if not isinstance(name, str):
continue
self.ignored_files.add(name)
# Basenames on disk always include .yml; allow omitting it in YAML.
if not name.endswith('.yml'):
self.ignored_files.add(f'{name}.yml')
except (yaml.YAMLError, FileNotFoundError) as e: except (yaml.YAMLError, FileNotFoundError) as e:
print(f"Warning: Error loading ignored files YAML: {e}") print(f"Warning: Error loading ignored files YAML: {e}")
@ -107,101 +194,291 @@ class ConfigSelector:
print(f"Error: Directory {self.original_config_path} not found") print(f"Error: Directory {self.original_config_path} not found")
exit(1) exit(1)
@staticmethod
def _strip_metadata(content: str) -> str:
"""Remove uuid and _core keys from Drupal YAML config content."""
content = re.sub(r'^uuid: [a-f0-9\-]+\n', '', content, flags=re.MULTILINE)
# Match exactly '_core:' at the start of a line (avoids touching wisski_core).
content = re.sub(r'^_core:\n([ \t]+[^\n]+\n)+', '', content, flags=re.MULTILINE)
return content
def _collect_bundle_hashes(self) -> Set[str]:
"""Return the set of bundle hashes found in matched wisski_core.wisski_bundle files."""
bundlePrefix = "wisski_core.wisski_bundle."
bundleHashes: Set[str] = set()
for prefix in self.prefixes:
for filename in self.matched_files.get(prefix, []):
if filename.startswith(bundlePrefix) and filename.endswith(".yml"):
bundleHash = filename[len(bundlePrefix):-4]
bundleHashes.add(bundleHash)
return bundleHashes
def _copy_file(self, src: str, dst: str) -> None:
"""Read src, strip metadata, write to dst. Falls back to raw copy on error."""
try:
with open(src, 'r') as f:
content = f.read()
content = self._strip_metadata(content)
with open(dst, 'w') as f:
f.write(content)
except Exception as e:
print(f"Error processing {os.path.basename(src)}: {e}")
shutil.copy2(src, dst)
def _copy_with_language_overrides(self, filename: str) -> int:
"""Copy original_config/language/{lang}/{filename} to new_recipe_config/language/{lang}/
for every language that has an override for this file. Returns count of overrides copied."""
langBase = os.path.join(self.original_config_path, "language")
if not os.path.isdir(langBase):
return 0
overridesCopied = 0
for langCode in os.listdir(langBase):
srcLangDir = os.path.join(langBase, langCode)
if not os.path.isdir(srcLangDir):
continue
srcOverride = os.path.join(srcLangDir, filename)
if not os.path.isfile(srcOverride):
continue
dstLangDir = os.path.join(self.config_path, "language", langCode)
os.makedirs(dstLangDir, exist_ok=True)
self._copy_file(srcOverride, os.path.join(dstLangDir, filename))
overridesCopied += 1
return overridesCopied
def copy_matched_files(self) -> None: def copy_matched_files(self) -> None:
"""Copy all matched files from original_config to config, removing UUID and _core structures.""" """Copy all matched files from original_config to config, removing UUID and _core structures."""
if not os.path.exists(self.config_path): if not os.path.exists(self.config_path):
os.makedirs(self.config_path) os.makedirs(self.config_path)
copied_count = 0 copiedCount = 0
processed_count = 0 processedCount = 0
overrideCopied = 0
for prefix in self.prefixes: for prefix in self.prefixes:
for filename in self.matched_files[prefix]: for filename in self.matched_files[prefix]:
src = os.path.join(self.original_config_path, filename) src = os.path.join(self.original_config_path, filename)
dst = os.path.join(self.config_path, filename) dst = os.path.join(self.config_path, filename)
# Read the YAML file
try: try:
with open(src, 'r') as file: with open(src, 'r') as f:
content = file.read() content = f.read()
content = self._strip_metadata(content)
# Process the content to remove UUID and _core structures with open(dst, 'w') as f:
# 1. Remove uuid key-value pair (ensuring we start at beginning of line) f.write(content)
content = re.sub(r'^uuid: [a-f0-9\-]+\n', '', content, flags=re.MULTILINE) processedCount += 1
# 2. Remove _core structure (careful not to remove wisski_core or similar)
# Match exactly '_core:' at the start of a line
content = re.sub(r'^_core:\n([ \t]+[^\n]+\n)+', '', content, flags=re.MULTILINE)
# Write the modified content
with open(dst, 'w') as file:
file.write(content)
processed_count += 1
except Exception as e: except Exception as e:
print(f"Error processing {filename}: {e}") print(f"Error processing {filename}: {e}")
# Fall back to direct copy if processing fails
shutil.copy2(src, dst) shutil.copy2(src, dst)
copiedCount += 1
overrideCopied += self._copy_with_language_overrides(filename)
copied_count += 1 # For every matched bundle, also copy its language.content_settings counterpart.
langCopied = 0
for bundleHash in self._collect_bundle_hashes():
langFilename = f"language.content_settings.wisski_individual.{bundleHash}.yml"
langSrc = os.path.join(self.original_config_path, langFilename)
langDst = os.path.join(self.config_path, langFilename)
if os.path.exists(langSrc):
self._copy_file(langSrc, langDst)
langCopied += 1
overrideCopied += self._copy_with_language_overrides(langFilename)
print(f"Copied {copied_count} files to {self.config_path} ({processed_count} files were processed to remove UUIDs and _core structures)") print(
f"Copied {copiedCount} files to {self.config_path} "
f"({processedCount} processed to remove UUIDs and _core structures)"
)
if langCopied:
print(f"Also copied {langCopied} corresponding language.content_settings files.")
if overrideCopied:
print(f"Also copied {overrideCopied} language override files from original_config/language/.")
pruned_export = self._prune_new_recipe_not_in_original()
if pruned_export:
print(
f"Removed {pruned_export} file(s) from new_recipe_config that are not in original_config "
f"(stale vs current export)."
)
pruned = self._prune_stale_language_overrides()
if pruned:
print(f"Removed {pruned} stale language override file(s) (no longer in export or missing base config).")
def compare_and_track_changes(self) -> Tuple[int, int, int]: @staticmethod
def _remove_empty_language_dirs(config_root: str) -> None:
"""Remove empty language/<lang>/ and language/ under config_root if possible."""
lang_root = os.path.join(config_root, "language")
if not os.path.isdir(lang_root):
return
for lang_code in list(os.listdir(lang_root)):
lang_dir = os.path.join(lang_root, lang_code)
if not os.path.isdir(lang_dir):
continue
try:
if not os.listdir(lang_dir):
os.rmdir(lang_dir)
except OSError:
pass
try:
if not os.listdir(lang_root):
os.rmdir(lang_root)
except OSError:
pass
def _prune_new_recipe_not_in_original(self) -> int:
"""Delete YAML under config_path whose relative path is absent from original_config.
Skips when original_config has no YAML (avoid wiping new_recipe before an export).
""" """
Compare files between old_recipe_config and new_recipe_config. orig_paths = self._collect_yaml_relpaths(self.original_config_path)
Copy changed files to changed_files folder. if not orig_paths:
Track deleted files in deleted_files.csv. return 0
new_paths = self._collect_yaml_relpaths(self.config_path)
orphans = new_paths - orig_paths
removed = 0
for rel in sorted(orphans):
path = self._abs_config_path(self.config_path, rel)
try:
if os.path.isfile(path):
os.remove(path)
removed += 1
except OSError:
pass
self._remove_empty_language_dirs(self.config_path)
return removed
def _prune_stale_language_overrides(self) -> int:
"""Remove language/*/*.yml in config_path that should not be kept.
Drops overrides that are missing from the current export (translation removed
on the site) or whose base config is not present under config_path (orphans
from earlier copies). Without this, compare would not list those as deleted.
"""
removed = 0
lang_dst_root = os.path.join(self.config_path, "language")
if not os.path.isdir(lang_dst_root):
return 0
lang_src_root = os.path.join(self.original_config_path, "language")
for lang_code in list(os.listdir(lang_dst_root)):
dst_lang_dir = os.path.join(lang_dst_root, lang_code)
if not os.path.isdir(dst_lang_dir):
continue
src_lang_dir = os.path.join(lang_src_root, lang_code)
for name in list(os.listdir(dst_lang_dir)):
if not name.endswith(".yml"):
continue
base_fp = os.path.join(self.config_path, name)
src_fp = os.path.join(src_lang_dir, name)
if os.path.isfile(base_fp) and os.path.isfile(src_fp):
continue
try:
os.remove(os.path.join(dst_lang_dir, name))
removed += 1
except OSError:
pass
self._remove_empty_language_dirs(self.config_path)
return removed
@staticmethod
def _collect_yaml_relpaths(config_root: str) -> Set[str]:
"""Relative paths (posix-style) for YAML under a Drupal config tree.
Includes top-level *.yml and language/<lang>/*.yml (same layout as exports).
"""
rel_paths: Set[str] = set()
if not os.path.isdir(config_root):
return rel_paths
try:
for name in os.listdir(config_root):
if name.endswith(".yml"):
rel_paths.add(name)
lang_root = os.path.join(config_root, "language")
if os.path.isdir(lang_root):
for lang_code in os.listdir(lang_root):
lang_dir = os.path.join(lang_root, lang_code)
if not os.path.isdir(lang_dir):
continue
for name in os.listdir(lang_dir):
if name.endswith(".yml"):
rel_paths.add(f"language/{lang_code}/{name}")
except OSError:
pass
return rel_paths
def _abs_config_path(self, config_root: str, rel_path: str) -> str:
"""Join config root with a posix rel_path from _collect_yaml_relpaths."""
return os.path.normpath(os.path.join(config_root, *rel_path.split("/")))
def compare_and_track_changes(self) -> Tuple[int, int, int, int, int, int]:
"""
Compare committed recipe config (old_recipe_path) to new_recipe_config (config_path).
- Copies **new** YAML (in new_recipe but not in committed recipe) to changed_files/.
- Copies **modified** YAML (same path, different content) to changed_files/.
- Respects ignored_files.yml (basename) for both new and modified copies.
- Writes deleted_files.csv: paths in committed recipe missing from new_recipe_config.
- Writes changed_files_manifest.csv: relative_path + kind (new|modified) for each copy.
- Writes new_recipe_not_in_original.csv for paths in new_recipe not in original export.
Returns: Returns:
Tuple of (changed_count, deleted_count, unchanged_count) Tuple of (added_count, modified_count, deleted_count, unchanged_count,
language_deleted_count, not_in_original_count)
""" """
# Ensure directories exist _clear_dir(self.changed_files_path)
if not os.path.exists(self.changed_files_path): os.makedirs(self.changed_files_path, exist_ok=True)
os.makedirs(self.changed_files_path)
# Track statistics # Track statistics
changed_count = 0 added_count = 0
modified_count = 0
deleted_count = 0 deleted_count = 0
unchanged_count = 0 unchanged_count = 0
ignored_count = 0 ignored_count = 0
deleted_files_list = [] deleted_files_list = []
manifest_rows: List[Tuple[str, str]] = []
# Get all files in old_recipe_config # Top-level and language/<lang>/*.yml (matches Drupal export layout)
old_files = set() old_files = self._collect_yaml_relpaths(self.old_recipe_path)
if os.path.exists(self.old_recipe_path): new_files = self._collect_yaml_relpaths(self.config_path)
old_files = {f for f in os.listdir(self.old_recipe_path) if f.endswith('.yml')}
# Get all files in new_recipe_config # Deleted: in committed recipe but not in new_recipe_config
new_files = set()
if os.path.exists(self.config_path):
new_files = {f for f in os.listdir(self.config_path) if f.endswith('.yml')}
# Find deleted files (in old but not in new)
deleted_files = old_files - new_files deleted_files = old_files - new_files
for filename in sorted(deleted_files): for rel_path in sorted(deleted_files):
deleted_files_list.append(filename) deleted_files_list.append(rel_path)
deleted_count += 1 deleted_count += 1
# Find common files and check for changes # Modified: same path in both, content differs
common_files = old_files & new_files common_files = old_files & new_files
for filename in sorted(common_files): for rel_path in sorted(common_files):
old_file_path = os.path.join(self.old_recipe_path, filename) old_file_path = self._abs_config_path(self.old_recipe_path, rel_path)
new_file_path = os.path.join(self.config_path, filename) new_file_path = self._abs_config_path(self.config_path, rel_path)
base_name = os.path.basename(rel_path)
# Compare file contents
if filecmp.cmp(old_file_path, new_file_path, shallow=False): if filecmp.cmp(old_file_path, new_file_path, shallow=False):
# Files are identical
unchanged_count += 1 unchanged_count += 1
else: else:
# Files have changed - check if ignored if base_name in self.ignored_files:
if filename in self.ignored_files:
# Skip copying ignored files
ignored_count += 1 ignored_count += 1
else: else:
# Copy to changed_files changed_dest = os.path.join(self.changed_files_path, *rel_path.split("/"))
changed_dest = os.path.join(self.changed_files_path, filename) os.makedirs(os.path.dirname(changed_dest), exist_ok=True)
shutil.copy2(new_file_path, changed_dest) shutil.copy2(new_file_path, changed_dest)
changed_count += 1 modified_count += 1
manifest_rows.append((rel_path, "modified"))
# New: in new_recipe (from original_config via prefixes) but not in committed recipe
added_files = new_files - old_files
for rel_path in sorted(added_files):
new_file_path = self._abs_config_path(self.config_path, rel_path)
base_name = os.path.basename(rel_path)
if base_name in self.ignored_files:
ignored_count += 1
else:
changed_dest = os.path.join(self.changed_files_path, *rel_path.split("/"))
os.makedirs(os.path.dirname(changed_dest), exist_ok=True)
shutil.copy2(new_file_path, changed_dest)
added_count += 1
manifest_rows.append((rel_path, "new"))
with open(self.changed_files_manifest_csv, "w", newline="") as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["relative_path", "kind"])
for rel_path, kind in sorted(manifest_rows, key=lambda x: (x[1], x[0])):
writer.writerow([rel_path, kind])
# Write deleted files to CSV # Write deleted files to CSV
with open(self.deleted_files_csv, 'w', newline='') as csvfile: with open(self.deleted_files_csv, 'w', newline='') as csvfile:
@ -211,9 +488,49 @@ class ConfigSelector:
writer.writerow([filename]) writer.writerow([filename])
if ignored_count > 0: if ignored_count > 0:
print(f"Ignored {ignored_count} changed file(s) as per ignored_files.yml") print(
f"Ignored {ignored_count} new/modified file(s) as per ignored_files.yml "
"(not copied to changed_files/)."
)
total_copied = added_count + modified_count
if total_copied:
print(
f"Copied {total_copied} file(s) to changed_files/ "
f"({added_count} new vs committed recipe, {modified_count} modified)."
)
return changed_count, deleted_count, unchanged_count language_deleted_count = sum(1 for p in deleted_files_list if p.startswith("language/"))
if language_deleted_count:
print(
f"Deleted list includes {language_deleted_count} language override path(s) "
f"(see deleted_files.csv under language/<lang>/)."
)
orig_paths = self._collect_yaml_relpaths(self.original_config_path)
new_paths = self._collect_yaml_relpaths(self.config_path)
not_in_original = sorted(new_paths - orig_paths)
not_in_original_count = len(not_in_original)
with open(self.new_recipe_not_in_original_csv, "w", newline="") as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["filename"])
for rel_path in not_in_original:
writer.writerow([rel_path])
if not_in_original_count:
print(
f"{not_in_original_count} path(s) in new_recipe_config are not in original_config "
f"(see {os.path.basename(self.new_recipe_not_in_original_csv)})."
)
elif not orig_paths:
print("Warning: original_config has no YAML; orphan CSV is empty.")
return (
added_count,
modified_count,
deleted_count,
unchanged_count,
language_deleted_count,
not_in_original_count,
)
def add_prefix(self, prefix: str) -> None: def add_prefix(self, prefix: str) -> None:
"""Add a new prefix to the list if it doesn't exist.""" """Add a new prefix to the list if it doesn't exist."""
@ -978,10 +1295,29 @@ def confirm_yaml_cleaning(stdscr, selector):
return confirm_dialog(stdscr, "Copy all matched files to config directory and remove UUID and _core?") return confirm_dialog(stdscr, "Copy all matched files to config directory and remove UUID and _core?")
def show_comparison_results(stdscr, changed_count, deleted_count, unchanged_count): def show_comparison_results(
stdscr,
added_count: int,
modified_count: int,
deleted_count: int,
unchanged_count: int,
language_deleted_count: int = 0,
not_in_original_count: int = 0,
):
"""Show the results of file comparison.""" """Show the results of file comparison."""
h, w = stdscr.getmaxyx() h, w = stdscr.getmaxyx()
dialog_h, dialog_w = 10, 60 dialog_w = 60
total_out = added_count + modified_count
# Rows from 3: 5 stats + optional notes + blank + 2 CSV hints; footer at dialog_h - 2
lines = (
5
+ (1 if not_in_original_count else 0)
+ (1 if language_deleted_count else 0)
+ 1
+ 2
)
last_content_row = 2 + lines
dialog_h = min(h - 2, max(14, last_content_row + 3))
dialog_y = (h - dialog_h) // 2 dialog_y = (h - dialog_h) // 2
dialog_x = (w - dialog_w) // 2 dialog_x = (w - dialog_w) // 2
@ -989,11 +1325,36 @@ def show_comparison_results(stdscr, changed_count, deleted_count, unchanged_coun
dialog_win = curses.newwin(dialog_h, dialog_w, dialog_y, dialog_x) dialog_win = curses.newwin(dialog_h, dialog_w, dialog_y, dialog_x)
dialog_win.box() dialog_win.box()
dialog_win.addstr(1, 2, "File Comparison Results", curses.A_BOLD) dialog_win.addstr(1, 2, "File Comparison Results", curses.A_BOLD)
dialog_win.addstr(3, 4, f"Changed files: {changed_count}") row = 3
dialog_win.addstr(4, 4, f"Deleted files: {deleted_count}") dialog_win.addstr(row, 4, f"New (not in committed recipe): {added_count}"[: dialog_w - 6])
dialog_win.addstr(5, 4, f"Unchanged files: {unchanged_count}") row += 1
dialog_win.addstr(7, 4, "Changed files copied to: changed_files/") dialog_win.addstr(row, 4, f"Modified vs committed: {modified_count}"[: dialog_w - 6])
dialog_win.addstr(8, 4, "Deleted files tracked in: deleted_files.csv") row += 1
dialog_win.addstr(row, 4, f"Total → changed_files/: {total_out}"[: dialog_w - 6])
row += 1
deleted_line = f"Deleted (recipe, missing in new): {deleted_count}"
if language_deleted_count:
deleted_line += f" ({language_deleted_count} language/)"
dialog_win.addstr(row, 4, deleted_line[: dialog_w - 6])
row += 1
dialog_win.addstr(row, 4, f"Unchanged: {unchanged_count}"[: dialog_w - 6])
row += 1
if not_in_original_count:
dialog_win.addstr(
row,
4,
f"Not in original export: {not_in_original_count} (new_recipe_not_in_original.csv)"[
: dialog_w - 6
],
)
row += 1
if language_deleted_count:
dialog_win.addstr(row, 4, "Language deletions: paths under language/… in deleted CSV")
row += 1
row += 1
dialog_win.addstr(row, 4, "Manifest → changed_files_manifest.csv")
row += 1
dialog_win.addstr(row, 4, "Deletions → deleted_files.csv")
dialog_win.addstr(dialog_h - 2, 2, "Press any key to continue...") dialog_win.addstr(dialog_h - 2, 2, "Press any key to continue...")
dialog_win.refresh() dialog_win.refresh()
@ -1001,36 +1362,26 @@ def show_comparison_results(stdscr, changed_count, deleted_count, unchanged_coun
stdscr.getch() stdscr.getch()
def main(stdscr): def main(stdscr):
# Set paths relative to current directory # Set paths relative to current directory.
json_path = os.path.join(BASE_DIR, "config_prefixes.json") jsonPath = os.path.join(BASE_DIR, "config_prefixes.json")
original_config_path = os.path.join(BASE_DIR, "original_config") configPath = os.path.join(BASE_DIR, "new_recipe_config")
config_path = os.path.join(BASE_DIR, "new_recipe_config")
# Create directories if they don't exist # Create directories if they don't exist.
if not os.path.exists(original_config_path): os.makedirs(ORIGINAL_CONFIG_DIR, exist_ok=True)
os.makedirs(original_config_path) os.makedirs(configPath, exist_ok=True)
print(f"Created directory: {original_config_path}")
print("Please place your source configuration files in this directory.")
if not os.path.exists(config_path): # Check if we need to create default JSON file.
os.makedirs(config_path) if not os.path.exists(jsonPath):
print(f"Created directory: {config_path}") with open(jsonPath, "w") as f:
json.dump({"prefixes": ["put.your.prefixes.here"]}, f, indent=2)
print(f"Created default {jsonPath}")
# Check if we need to create default JSON file # Initialize selector.
if not os.path.exists(json_path):
with open(json_path, 'w') as f:
json.dump({
"prefixes": [
"put.your.prefixes.here",
]
}, f, indent=2)
print(f"Created default {json_path}")
# Initialize selector
selector = ConfigSelector( selector = ConfigSelector(
json_path=json_path, json_path=jsonPath,
original_config_path=original_config_path, original_config_path=ORIGINAL_CONFIG_DIR,
config_path=config_path config_path=configPath,
old_recipe_path=RECIPE_CONFIG_DIR,
) )
# Menu state # Menu state
@ -1172,8 +1523,23 @@ def main(stdscr):
selector.copy_matched_files() selector.copy_matched_files()
elif key == ord('m') or key == ord('M'): elif key == ord('m') or key == ord('M'):
if confirm_dialog(stdscr, "Compare old and new recipe configs and track changes?"): if confirm_dialog(stdscr, "Compare old and new recipe configs and track changes?"):
changed_count, deleted_count, unchanged_count = selector.compare_and_track_changes() (
show_comparison_results(stdscr, changed_count, deleted_count, unchanged_count) added_count,
modified_count,
deleted_count,
unchanged_count,
language_deleted_count,
not_in_original_count,
) = selector.compare_and_track_changes()
show_comparison_results(
stdscr,
added_count,
modified_count,
deleted_count,
unchanged_count,
language_deleted_count,
not_in_original_count,
)
elif key == ord('s') or key == ord('S'): elif key == ord('s') or key == ord('S'):
selector.save_prefixes() selector.save_prefixes()
elif key in (10, 13): # ENTER key to select individual files elif key in (10, 13): # ENTER key to select individual files
@ -1231,6 +1597,8 @@ def main(stdscr):
selector.matched_files[target_prefix].append(file) selector.matched_files[target_prefix].append(file)
if __name__ == "__main__": if __name__ == "__main__":
forceIngest = "--force" in sys.argv
ingest_config(force=forceIngest)
try: try:
curses.wrapper(main) curses.wrapper(main)
except KeyboardInterrupt: except KeyboardInterrupt:

View file

@ -1,408 +0,0 @@
filename
core.entity_form_display.wisski_individual.b0bb97d703b09623b04167df1b5f3f49.default.yml
core.entity_form_display.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.default.yml
core.entity_form_display.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.default.yml
core.entity_form_display.wisski_individual.b29e446d50baead6233e4f0486368ed6.default.yml
core.entity_form_display.wisski_individual.b29e446d50baead6233e4f0486368ed6.reference_detailed.yml
core.entity_form_display.wisski_individual.b29e446d50baead6233e4f0486368ed6.reference_text.yml
core.entity_form_display.wisski_individual.b4e3bc7ca312a6c46228f35fbf7e1cee.default.yml
core.entity_form_display.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.default.yml
core.entity_form_display.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.default.yml
core.entity_form_display.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.reference_detailed.yml
core.entity_form_display.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.reference_text.yml
core.entity_form_display.wisski_individual.b6fdcccc1c6a08cb48abffecc5a31cfc.default.yml
core.entity_form_display.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.default.yml
core.entity_form_display.wisski_individual.b8a35d61f1bd2672835d376015222d21.default.yml
core.entity_form_display.wisski_individual.ba115ec3f3676cbec7ba8297a94bea48.default.yml
core.entity_form_display.wisski_individual.bad1642b861feb14ecad423091d4495b.default.yml
core.entity_form_display.wisski_individual.bb48a22d36f1c15cd16b143d23466812.default.yml
core.entity_form_display.wisski_individual.bb6bf561b183a2b1733ca97f262ab930.default.yml
core.entity_form_display.wisski_individual.bb79e2aca604c4feee0889e8979f00a6.default.yml
core.entity_form_display.wisski_individual.bc076202c79a386a55b105b7c82e252d.default.yml
core.entity_form_display.wisski_individual.bd0e80d09d3a2618e10a9bda2f85076b.default.yml
core.entity_form_display.wisski_individual.bd649063d3131a245922f7718d962ec6.default.yml
core.entity_form_display.wisski_individual.be6c0e85956559c87483917da3888e23.default.yml
core.entity_form_display.wisski_individual.be9be1c504c5df35dca1836f16d0ee73.default.yml
core.entity_form_display.wisski_individual.bf3b15207bd74301804eb30c87e0fe00.default.yml
core.entity_form_mode.wisski_individual.reference_detailed.yml
core.entity_form_mode.wisski_individual.reference_text.yml
core.entity_view_display.wisski_individual.b0bb97d703b09623b04167df1b5f3f49.default.yml
core.entity_view_display.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.default.yml
core.entity_view_display.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.default.yml
core.entity_view_display.wisski_individual.b29e446d50baead6233e4f0486368ed6.default.yml
core.entity_view_display.wisski_individual.b4e3bc7ca312a6c46228f35fbf7e1cee.default.yml
core.entity_view_display.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.default.yml
core.entity_view_display.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.in_data_record.yml
core.entity_view_display.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.reference.yml
core.entity_view_display.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.default.yml
core.entity_view_display.wisski_individual.b6fdcccc1c6a08cb48abffecc5a31cfc.default.yml
core.entity_view_display.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.default.yml
core.entity_view_display.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.multiple.yml
core.entity_view_display.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.reference.yml
core.entity_view_display.wisski_individual.b8a35d61f1bd2672835d376015222d21.default.yml
core.entity_view_display.wisski_individual.ba115ec3f3676cbec7ba8297a94bea48.default.yml
core.entity_view_display.wisski_individual.bad1642b861feb14ecad423091d4495b.default.yml
core.entity_view_display.wisski_individual.bb48a22d36f1c15cd16b143d23466812.default.yml
core.entity_view_display.wisski_individual.bb48a22d36f1c15cd16b143d23466812.reference.yml
core.entity_view_display.wisski_individual.bb6bf561b183a2b1733ca97f262ab930.default.yml
core.entity_view_display.wisski_individual.bb79e2aca604c4feee0889e8979f00a6.default.yml
core.entity_view_display.wisski_individual.bc076202c79a386a55b105b7c82e252d.default.yml
core.entity_view_display.wisski_individual.bd0e80d09d3a2618e10a9bda2f85076b.default.yml
core.entity_view_display.wisski_individual.bd649063d3131a245922f7718d962ec6.default.yml
core.entity_view_display.wisski_individual.be6c0e85956559c87483917da3888e23.default.yml
core.entity_view_display.wisski_individual.be6c0e85956559c87483917da3888e23.preferred_name.yml
core.entity_view_display.wisski_individual.be9be1c504c5df35dca1836f16d0ee73.default.yml
core.entity_view_display.wisski_individual.bf3b15207bd74301804eb30c87e0fe00.default.yml
core.entity_view_mode.wisski_individual.in_data_record.yml
core.entity_view_mode.wisski_individual.multiple.yml
core.entity_view_mode.wisski_individual.preferred_name.yml
core.entity_view_mode.wisski_individual.reference.yml
field.field.wisski_individual.b0bb97d703b09623b04167df1b5f3f49.f1ff3b967723f445933b8a9d7035aad2.yml
field.field.wisski_individual.b0bb97d703b09623b04167df1b5f3f49.fd26906e13c587b8451a6b2af4c08eb4.yml
field.field.wisski_individual.b0bb97d703b09623b04167df1b5f3f49.febe969b98b649621d4c11d0c0e32480.yml
field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f02460c4dea0c764d17fe66be8f02508.yml
field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f04ed8c79450669ddd5e93467f2a1a51.yml
field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f239c64d0bd4b9138bb8fb9e79942110.yml
field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f295382ce36e43723aefe2fdcbb0d825.yml
field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f539313cc1cf9a0db4bbe8f9aa5a8e45.yml
field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f573e1715065fb91e0d9b8a9cd3676ec.yml
field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f81d5c928f704125c6859e38f6b20499.yml
field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f9bf6956a0719fd938b76bdf59701563.yml
field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.fae0f9922ce4953c25f6b6d7643459ac.yml
field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.ffa950f2daa5ea8b4a36265e8afc3fd9.yml
field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.f0eee74eab34dac2e3f3042eb332d703.yml
field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.f883e31b3ad23a22cd4aa2fbd11159e2.yml
field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.fa7cfbe46f0dfc896c7c66fbc0a011ba.yml
field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.fb3e71f75bccac3e7aee7efdb2cb14d8.yml
field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.fcce64514b22835881e127a12fa0262d.yml
field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.fed7ddd55a3909def3c1a9c6f60b44ab.yml
field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.ff967c7b141984e1d4e0982c46d02490.yml
field.field.wisski_individual.b29e446d50baead6233e4f0486368ed6.f0d486a436c752d203c3d61be724ec0e.yml
field.field.wisski_individual.b29e446d50baead6233e4f0486368ed6.f3d7e2759ca9321d8f3cb142c21b2450.yml
field.field.wisski_individual.b29e446d50baead6233e4f0486368ed6.f92436d0dc6d2bc4d51d242302707128.yml
field.field.wisski_individual.b29e446d50baead6233e4f0486368ed6.fbd761428160e6e71e34a89c8947436b.yml
field.field.wisski_individual.b29e446d50baead6233e4f0486368ed6.ff261d2c17cf334dd083acf2f917c0d2.yml
field.field.wisski_individual.b4e3bc7ca312a6c46228f35fbf7e1cee.f15ccea9926a79f0d5a64969f2d281ff.yml
field.field.wisski_individual.b4e3bc7ca312a6c46228f35fbf7e1cee.f4cfb767e90ca07edc4f68299663c4de.yml
field.field.wisski_individual.b4e3bc7ca312a6c46228f35fbf7e1cee.f64fbe1124b1d557590cb01c7fdef63c.yml
field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.f0665bd9a349ddb1f3c710369fab8716.yml
field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.f3fd2d803386046f79aeda1387255c21.yml
field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.f8cada4d5f594d0b03f9a39c77492828.yml
field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.f92639d54a47119d4883a941cca24977.yml
field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.fcb7753907b00a53a4d85b2b76990ce8.yml
field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.fcda28daa1b9a3542d4b50c42b3768d1.yml
field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.fd06abbd8a2b0d0945cab573866f8b69.yml
field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.feed4362addfb137b333877006505ed1.yml
field.field.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.f07178031ead71efc4add43c67d498bf.yml
field.field.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.f6fdf07c98933aa4f6f7e6c28cb3fa33.yml
field.field.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.faa0cb687be0c5af723fbab86edfffd1.yml
field.field.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.fc26b447ad175ecae3d6eeb5f463a0e9.yml
field.field.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.fe6c9de47066f3468c6aa80e2fc81acd.yml
field.field.wisski_individual.b6fdcccc1c6a08cb48abffecc5a31cfc.f2c5fa9933fe76dd4dbf5bb90b56b136.yml
field.field.wisski_individual.b6fdcccc1c6a08cb48abffecc5a31cfc.f6821bd09ffdef06b0c5fefaf02df2f0.yml
field.field.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.f35ec1009a594afbd49536c5fc558e04.yml
field.field.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.f62a3579fc0b41ba01707d58d5cef641.yml
field.field.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.f9ed89e6c011d4a0ed5ac9cd5561ce38.yml
field.field.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.feb35e71b6bcf82847c5f3f6a57f6274.yml
field.field.wisski_individual.b8a35d61f1bd2672835d376015222d21.f1aee0c3ecfa2791fe7b1271561c0e12.yml
field.field.wisski_individual.b8a35d61f1bd2672835d376015222d21.f5f4cf8c6abf0ea929305a98956a4380.yml
field.field.wisski_individual.b8a35d61f1bd2672835d376015222d21.f71837c561d00ed05d853339747a44bc.yml
field.field.wisski_individual.ba115ec3f3676cbec7ba8297a94bea48.f481c15a6aeb4fad22258aa4a00064c6.yml
field.field.wisski_individual.ba115ec3f3676cbec7ba8297a94bea48.f5fc867134b7662a70778dfb75523c7c.yml
field.field.wisski_individual.ba115ec3f3676cbec7ba8297a94bea48.f7e9004d4e3ca106c0a39c63c1f1386c.yml
field.field.wisski_individual.ba115ec3f3676cbec7ba8297a94bea48.f86ee13d36aa1ccad56e6b250af24209.yml
field.field.wisski_individual.bad1642b861feb14ecad423091d4495b.f7724300936afe7f841689ce8dda3519.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f0a4220f174873b3b1dff5c4f0ab038d.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f2b4b472cafb7f4c46a7c822794ed9dd.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f2de9f0b2efc868a635f5adfad12a810.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f2f58a56928267034a028100735346f1.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f3a37ff34347b001f327ac2bac9dec86.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f65a6586daed6cba734f174af630bdcf.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f8478ccaf30ed82bc2287f238406cda8.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f8e173631161acd62dba6f8cbd3592de.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f9188639e85ca8d8b8703232f59f1e97.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f9744c24e4e75df81149232ff393ea47.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.fbbd0fc7866781fbe7913c284ffd6427.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.fcbad61edd92acfbf7014e118c757c7c.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.ff49657fae8a4f553b233b221ba33f8e.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.ff95e2be93a5fa409f76e3d6fc338bf1.yml
field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.field__vf__title.yml
field.field.wisski_individual.bb6bf561b183a2b1733ca97f262ab930.f44970b58e7b700acf846fbac6d527c3.yml
field.field.wisski_individual.bb6bf561b183a2b1733ca97f262ab930.fbc6fd9d737b5047b949baa68c1c543a.yml
field.field.wisski_individual.bb6bf561b183a2b1733ca97f262ab930.fc8e3f1ccd8987fbb8567b52ced21d25.yml
field.field.wisski_individual.bb6bf561b183a2b1733ca97f262ab930.fdbb81d6d2bb33a8e75567aaff54bbd8.yml
field.field.wisski_individual.bb79e2aca604c4feee0889e8979f00a6.ffed4df47440f25499f56fa7e4d74710.yml
field.field.wisski_individual.bc076202c79a386a55b105b7c82e252d.fb1e7967174594ce391b147209a1a9a4.yml
field.field.wisski_individual.bc076202c79a386a55b105b7c82e252d.fbdb442d391782be5eede091f56a81de.yml
field.field.wisski_individual.bd0e80d09d3a2618e10a9bda2f85076b.f0f8bd10e7b63f0a1868f707c9a21c39.yml
field.field.wisski_individual.bd0e80d09d3a2618e10a9bda2f85076b.f6086615f0c43675ad484d5c999f3f75.yml
field.field.wisski_individual.bd0e80d09d3a2618e10a9bda2f85076b.f87beac06a07ace7adf427cd85de0e6e.yml
field.field.wisski_individual.bd649063d3131a245922f7718d962ec6.f19bb59b1cf639dc539f94aefe256dd4.yml
field.field.wisski_individual.be6c0e85956559c87483917da3888e23.f2b62e51766b434f435e6accb85ced1b.yml
field.field.wisski_individual.be6c0e85956559c87483917da3888e23.f565edc65db3ac9ae753871b344a9918.yml
field.field.wisski_individual.be6c0e85956559c87483917da3888e23.f7397b24e80a4f0044962496b226c077.yml
field.field.wisski_individual.be6c0e85956559c87483917da3888e23.fb7c4c986649cff59847eaa6ba5f3c52.yml
field.field.wisski_individual.be6c0e85956559c87483917da3888e23.fe7df91c90d7aa9931e5926ac4393d00.yml
field.field.wisski_individual.be6c0e85956559c87483917da3888e23.ff4f59194bdfa4ae75cdad83a38ba197.yml
field.field.wisski_individual.be6c0e85956559c87483917da3888e23.ffd2f8520a495b47b848996f6d373fd1.yml
field.field.wisski_individual.be9be1c504c5df35dca1836f16d0ee73.f01c7d46b9913b99909f50c098a1920a.yml
field.field.wisski_individual.be9be1c504c5df35dca1836f16d0ee73.f8dba8630367c32aeb2557097a2d0259.yml
field.field.wisski_individual.be9be1c504c5df35dca1836f16d0ee73.f971858ff1b65215d8e24508998be0d7.yml
field.field.wisski_individual.be9be1c504c5df35dca1836f16d0ee73.fd9046c3faf34e0e09444744b19aad49.yml
field.field.wisski_individual.bf3b15207bd74301804eb30c87e0fe00.f75e5d31023925b916d99cb819c720d5.yml
field.field.wisski_individual.bf3b15207bd74301804eb30c87e0fe00.f90b172c9e7d5bf32cbd3ad8fc2eff90.yml
field.field.wisski_individual.bf3b15207bd74301804eb30c87e0fe00.fa4020f71a81e0ebf7cc3ebd60c39017.yml
field.storage.wisski_individual.f01c7d46b9913b99909f50c098a1920a.yml
field.storage.wisski_individual.f02460c4dea0c764d17fe66be8f02508.yml
field.storage.wisski_individual.f04ed8c79450669ddd5e93467f2a1a51.yml
field.storage.wisski_individual.f0665bd9a349ddb1f3c710369fab8716.yml
field.storage.wisski_individual.f07178031ead71efc4add43c67d498bf.yml
field.storage.wisski_individual.f0a4220f174873b3b1dff5c4f0ab038d.yml
field.storage.wisski_individual.f0d486a436c752d203c3d61be724ec0e.yml
field.storage.wisski_individual.f0eee74eab34dac2e3f3042eb332d703.yml
field.storage.wisski_individual.f0f8bd10e7b63f0a1868f707c9a21c39.yml
field.storage.wisski_individual.f15ccea9926a79f0d5a64969f2d281ff.yml
field.storage.wisski_individual.f19bb59b1cf639dc539f94aefe256dd4.yml
field.storage.wisski_individual.f1aee0c3ecfa2791fe7b1271561c0e12.yml
field.storage.wisski_individual.f1ff3b967723f445933b8a9d7035aad2.yml
field.storage.wisski_individual.f239c64d0bd4b9138bb8fb9e79942110.yml
field.storage.wisski_individual.f295382ce36e43723aefe2fdcbb0d825.yml
field.storage.wisski_individual.f2b4b472cafb7f4c46a7c822794ed9dd.yml
field.storage.wisski_individual.f2b62e51766b434f435e6accb85ced1b.yml
field.storage.wisski_individual.f2c5fa9933fe76dd4dbf5bb90b56b136.yml
field.storage.wisski_individual.f2de9f0b2efc868a635f5adfad12a810.yml
field.storage.wisski_individual.f2f58a56928267034a028100735346f1.yml
field.storage.wisski_individual.f35ec1009a594afbd49536c5fc558e04.yml
field.storage.wisski_individual.f3a37ff34347b001f327ac2bac9dec86.yml
field.storage.wisski_individual.f3d7e2759ca9321d8f3cb142c21b2450.yml
field.storage.wisski_individual.f3fd2d803386046f79aeda1387255c21.yml
field.storage.wisski_individual.f44970b58e7b700acf846fbac6d527c3.yml
field.storage.wisski_individual.f481c15a6aeb4fad22258aa4a00064c6.yml
field.storage.wisski_individual.f4cfb767e90ca07edc4f68299663c4de.yml
field.storage.wisski_individual.f539313cc1cf9a0db4bbe8f9aa5a8e45.yml
field.storage.wisski_individual.f565edc65db3ac9ae753871b344a9918.yml
field.storage.wisski_individual.f573e1715065fb91e0d9b8a9cd3676ec.yml
field.storage.wisski_individual.f5f4cf8c6abf0ea929305a98956a4380.yml
field.storage.wisski_individual.f5fc867134b7662a70778dfb75523c7c.yml
field.storage.wisski_individual.f6086615f0c43675ad484d5c999f3f75.yml
field.storage.wisski_individual.f62a3579fc0b41ba01707d58d5cef641.yml
field.storage.wisski_individual.f64fbe1124b1d557590cb01c7fdef63c.yml
field.storage.wisski_individual.f65a6586daed6cba734f174af630bdcf.yml
field.storage.wisski_individual.f6821bd09ffdef06b0c5fefaf02df2f0.yml
field.storage.wisski_individual.f6fdf07c98933aa4f6f7e6c28cb3fa33.yml
field.storage.wisski_individual.f71837c561d00ed05d853339747a44bc.yml
field.storage.wisski_individual.f7397b24e80a4f0044962496b226c077.yml
field.storage.wisski_individual.f75e5d31023925b916d99cb819c720d5.yml
field.storage.wisski_individual.f7724300936afe7f841689ce8dda3519.yml
field.storage.wisski_individual.f7e9004d4e3ca106c0a39c63c1f1386c.yml
field.storage.wisski_individual.f81d5c928f704125c6859e38f6b20499.yml
field.storage.wisski_individual.f8478ccaf30ed82bc2287f238406cda8.yml
field.storage.wisski_individual.f86ee13d36aa1ccad56e6b250af24209.yml
field.storage.wisski_individual.f87beac06a07ace7adf427cd85de0e6e.yml
field.storage.wisski_individual.f883e31b3ad23a22cd4aa2fbd11159e2.yml
field.storage.wisski_individual.f8cada4d5f594d0b03f9a39c77492828.yml
field.storage.wisski_individual.f8dba8630367c32aeb2557097a2d0259.yml
field.storage.wisski_individual.f8e173631161acd62dba6f8cbd3592de.yml
field.storage.wisski_individual.f90b172c9e7d5bf32cbd3ad8fc2eff90.yml
field.storage.wisski_individual.f9188639e85ca8d8b8703232f59f1e97.yml
field.storage.wisski_individual.f92436d0dc6d2bc4d51d242302707128.yml
field.storage.wisski_individual.f92639d54a47119d4883a941cca24977.yml
field.storage.wisski_individual.f971858ff1b65215d8e24508998be0d7.yml
field.storage.wisski_individual.f9744c24e4e75df81149232ff393ea47.yml
field.storage.wisski_individual.f9bf6956a0719fd938b76bdf59701563.yml
field.storage.wisski_individual.f9ed89e6c011d4a0ed5ac9cd5561ce38.yml
field.storage.wisski_individual.fa4020f71a81e0ebf7cc3ebd60c39017.yml
field.storage.wisski_individual.fa7cfbe46f0dfc896c7c66fbc0a011ba.yml
field.storage.wisski_individual.faa0cb687be0c5af723fbab86edfffd1.yml
field.storage.wisski_individual.fae0f9922ce4953c25f6b6d7643459ac.yml
field.storage.wisski_individual.fb1e7967174594ce391b147209a1a9a4.yml
field.storage.wisski_individual.fb3e71f75bccac3e7aee7efdb2cb14d8.yml
field.storage.wisski_individual.fb7c4c986649cff59847eaa6ba5f3c52.yml
field.storage.wisski_individual.fbbd0fc7866781fbe7913c284ffd6427.yml
field.storage.wisski_individual.fbc6fd9d737b5047b949baa68c1c543a.yml
field.storage.wisski_individual.fbd761428160e6e71e34a89c8947436b.yml
field.storage.wisski_individual.fbdb442d391782be5eede091f56a81de.yml
field.storage.wisski_individual.fc26b447ad175ecae3d6eeb5f463a0e9.yml
field.storage.wisski_individual.fc8e3f1ccd8987fbb8567b52ced21d25.yml
field.storage.wisski_individual.fcb7753907b00a53a4d85b2b76990ce8.yml
field.storage.wisski_individual.fcbad61edd92acfbf7014e118c757c7c.yml
field.storage.wisski_individual.fcce64514b22835881e127a12fa0262d.yml
field.storage.wisski_individual.fcda28daa1b9a3542d4b50c42b3768d1.yml
field.storage.wisski_individual.fd06abbd8a2b0d0945cab573866f8b69.yml
field.storage.wisski_individual.fd26906e13c587b8451a6b2af4c08eb4.yml
field.storage.wisski_individual.fd9046c3faf34e0e09444744b19aad49.yml
field.storage.wisski_individual.fdbb81d6d2bb33a8e75567aaff54bbd8.yml
field.storage.wisski_individual.fe6c9de47066f3468c6aa80e2fc81acd.yml
field.storage.wisski_individual.fe7df91c90d7aa9931e5926ac4393d00.yml
field.storage.wisski_individual.feb35e71b6bcf82847c5f3f6a57f6274.yml
field.storage.wisski_individual.febe969b98b649621d4c11d0c0e32480.yml
field.storage.wisski_individual.fed7ddd55a3909def3c1a9c6f60b44ab.yml
field.storage.wisski_individual.feed4362addfb137b333877006505ed1.yml
field.storage.wisski_individual.ff261d2c17cf334dd083acf2f917c0d2.yml
field.storage.wisski_individual.ff49657fae8a4f553b233b221ba33f8e.yml
field.storage.wisski_individual.ff4f59194bdfa4ae75cdad83a38ba197.yml
field.storage.wisski_individual.ff95e2be93a5fa409f76e3d6fc338bf1.yml
field.storage.wisski_individual.ff967c7b141984e1d4e0982c46d02490.yml
field.storage.wisski_individual.ffa950f2daa5ea8b4a36265e8afc3fd9.yml
field.storage.wisski_individual.ffd2f8520a495b47b848996f6d373fd1.yml
field.storage.wisski_individual.ffed4df47440f25499f56fa7e4d74710.yml
field.storage.wisski_individual.field__vf__title.yml
views.view.b0bb97d703b09623b04167df1b5f3f49.yml
views.view.b0fa9cc21598a987c556bc05d5e3889e.yml
views.view.b29098a2dbcbda0f61cba5ba9e686f20.yml
views.view.b29e446d50baead6233e4f0486368ed6.yml
views.view.b4e3bc7ca312a6c46228f35fbf7e1cee.yml
views.view.b619446f296dfb7c22cf022aac8ce20c.yml
views.view.b66dd83c2f07cd0d188b31b879775f72.yml
views.view.b6fdcccc1c6a08cb48abffecc5a31cfc.yml
views.view.b7f7eceaa540597c1440f1c470bebe07.yml
views.view.b8a35d61f1bd2672835d376015222d21.yml
views.view.ba115ec3f3676cbec7ba8297a94bea48.yml
views.view.bad1642b861feb14ecad423091d4495b.yml
views.view.bb48a22d36f1c15cd16b143d23466812.yml
views.view.bb6bf561b183a2b1733ca97f262ab930.yml
views.view.bb79e2aca604c4feee0889e8979f00a6.yml
views.view.bc076202c79a386a55b105b7c82e252d.yml
views.view.bd0e80d09d3a2618e10a9bda2f85076b.yml
views.view.bd649063d3131a245922f7718d962ec6.yml
views.view.be6c0e85956559c87483917da3888e23.yml
views.view.be9be1c504c5df35dca1836f16d0ee73.yml
views.view.bf3b15207bd74301804eb30c87e0fe00.yml
wisski_core.wisski_bundle.b0bb97d703b09623b04167df1b5f3f49.yml
wisski_core.wisski_bundle.b0fa9cc21598a987c556bc05d5e3889e.yml
wisski_core.wisski_bundle.b29098a2dbcbda0f61cba5ba9e686f20.yml
wisski_core.wisski_bundle.b29e446d50baead6233e4f0486368ed6.yml
wisski_core.wisski_bundle.b4e3bc7ca312a6c46228f35fbf7e1cee.yml
wisski_core.wisski_bundle.b619446f296dfb7c22cf022aac8ce20c.yml
wisski_core.wisski_bundle.b66dd83c2f07cd0d188b31b879775f72.yml
wisski_core.wisski_bundle.b6fdcccc1c6a08cb48abffecc5a31cfc.yml
wisski_core.wisski_bundle.b7f7eceaa540597c1440f1c470bebe07.yml
wisski_core.wisski_bundle.b8a35d61f1bd2672835d376015222d21.yml
wisski_core.wisski_bundle.ba115ec3f3676cbec7ba8297a94bea48.yml
wisski_core.wisski_bundle.bad1642b861feb14ecad423091d4495b.yml
wisski_core.wisski_bundle.bb48a22d36f1c15cd16b143d23466812.yml
wisski_core.wisski_bundle.bb6bf561b183a2b1733ca97f262ab930.yml
wisski_core.wisski_bundle.bb79e2aca604c4feee0889e8979f00a6.yml
wisski_core.wisski_bundle.bc076202c79a386a55b105b7c82e252d.yml
wisski_core.wisski_bundle.bd0e80d09d3a2618e10a9bda2f85076b.yml
wisski_core.wisski_bundle.bd649063d3131a245922f7718d962ec6.yml
wisski_core.wisski_bundle.be6c0e85956559c87483917da3888e23.yml
wisski_core.wisski_bundle.be9be1c504c5df35dca1836f16d0ee73.yml
wisski_core.wisski_bundle.bf3b15207bd74301804eb30c87e0fe00.yml
wisski_pathbuilder.settings.yml
wisski_pathbuilder.wisski_path.f__actor__alter_names.yml
wisski_pathbuilder.wisski_path.f__actor__authority_data.yml
wisski_pathbuilder.wisski_path.f__actor__begin_of_exist.yml
wisski_pathbuilder.wisski_path.f__actor__display_authority_name.yml
wisski_pathbuilder.wisski_path.f__actor__display_custom_name.yml
wisski_pathbuilder.wisski_path.f__actor__end_of_exist.yml
wisski_pathbuilder.wisski_path.f__actor__name.yml
wisski_pathbuilder.wisski_path.f__actor__occupation.yml
wisski_pathbuilder.wisski_path.f__actor__organisation_type.yml
wisski_pathbuilder.wisski_path.f__actor__type.yml
wisski_pathbuilder.wisski_path.f__auth_data__authority_document.yml
wisski_pathbuilder.wisski_path.f__auth_data__entity_type.yml
wisski_pathbuilder.wisski_path.f__auth_data__preferred_term.yml
wisski_pathbuilder.wisski_path.f__auth_data__url.yml
wisski_pathbuilder.wisski_path.f__auth_doc__acronym.yml
wisski_pathbuilder.wisski_path.f__auth_doc__name.yml
wisski_pathbuilder.wisski_path.f__auth_doc__website.yml
wisski_pathbuilder.wisski_path.f__boe__participants.yml
wisski_pathbuilder.wisski_path.f__boe__period.yml
wisski_pathbuilder.wisski_path.f__boe__place.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__data_record.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__dimension.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__discription.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__identifier.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__item_history_activity.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__keyword.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__material.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__media_file.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__place.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__ressoucen.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__technique.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__title.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__title_ref.yml
wisski_pathbuilder.wisski_path.f__cult_her_item__type.yml
wisski_pathbuilder.wisski_path.f__custom_term__alternative_name.yml
wisski_pathbuilder.wisski_path.f__custom_term__preferred_name.yml
wisski_pathbuilder.wisski_path.f__data_record__actor.yml
wisski_pathbuilder.wisski_path.f__data_record__dig_proc.yml
wisski_pathbuilder.wisski_path.f__data_record__id.yml
wisski_pathbuilder.wisski_path.f__data_record__language.yml
wisski_pathbuilder.wisski_path.f__data_record__media_file.yml
wisski_pathbuilder.wisski_path.f__data_record__rights.yml
wisski_pathbuilder.wisski_path.f__data_record__type.yml
wisski_pathbuilder.wisski_path.f__date__appellation.yml
wisski_pathbuilder.wisski_path.f__date__day.yml
wisski_pathbuilder.wisski_path.f__date__month.yml
wisski_pathbuilder.wisski_path.f__date__operator.yml
wisski_pathbuilder.wisski_path.f__date__year.yml
wisski_pathbuilder.wisski_path.f__dig_proc__creator.yml
wisski_pathbuilder.wisski_path.f__dim__type.yml
wisski_pathbuilder.wisski_path.f__dim__unit.yml
wisski_pathbuilder.wisski_path.f__dim__value.yml
wisski_pathbuilder.wisski_path.f__eoe__participants.yml
wisski_pathbuilder.wisski_path.f__eoe__place.yml
wisski_pathbuilder.wisski_path.f__eoe__zeitraum.yml
wisski_pathbuilder.wisski_path.f__item_history_activity__actor.yml
wisski_pathbuilder.wisski_path.f__item_history_activity__date.yml
wisski_pathbuilder.wisski_path.f__item_history_activity__place.yml
wisski_pathbuilder.wisski_path.f__item_history_activity__type.yml
wisski_pathbuilder.wisski_path.f__keyword__appellation.yml
wisski_pathbuilder.wisski_path.f__keyword__used_by_object.yml
wisski_pathbuilder.wisski_path.f__material__type.yml
wisski_pathbuilder.wisski_path.f__media_file__audio.yml
wisski_pathbuilder.wisski_path.f__media_file__description.yml
wisski_pathbuilder.wisski_path.f__media_file__document.yml
wisski_pathbuilder.wisski_path.f__media_file__image.yml
wisski_pathbuilder.wisski_path.f__media_file__rights.yml
wisski_pathbuilder.wisski_path.f__media_file__type.yml
wisski_pathbuilder.wisski_path.f__media_file__url.yml
wisski_pathbuilder.wisski_path.f__media_file__video.yml
wisski_pathbuilder.wisski_path.f__period__begin_det.yml
wisski_pathbuilder.wisski_path.f__period__begin_text.yml
wisski_pathbuilder.wisski_path.f__period__end_det.yml
wisski_pathbuilder.wisski_path.f__period__end_text.yml
wisski_pathbuilder.wisski_path.f__period__precision.yml
wisski_pathbuilder.wisski_path.f__place__alternative_name.yml
wisski_pathbuilder.wisski_path.f__place__authority_data.yml
wisski_pathbuilder.wisski_path.f__place__display_authority_name.yml
wisski_pathbuilder.wisski_path.f__place__display_custom_name.yml
wisski_pathbuilder.wisski_path.f__place__place.yml
wisski_pathbuilder.wisski_path.f__place__preferred_name.yml
wisski_pathbuilder.wisski_path.f__place__spatial_coordinates.yml
wisski_pathbuilder.wisski_path.f__resource__appellation.yml
wisski_pathbuilder.wisski_path.f__resource__comment.yml
wisski_pathbuilder.wisski_path.f__resource__link.yml
wisski_pathbuilder.wisski_path.f__resource__type.yml
wisski_pathbuilder.wisski_path.f__right__actor.yml
wisski_pathbuilder.wisski_path.f__right__usage.yml
wisski_pathbuilder.wisski_path.f__right_description.yml
wisski_pathbuilder.wisski_path.f__technique__type.yml
wisski_pathbuilder.wisski_path.f__title_ass__objekt_id.yml
wisski_pathbuilder.wisski_path.f__title_ass__status.yml
wisski_pathbuilder.wisski_path.f__title_ass__titel.yml
wisski_pathbuilder.wisski_path.f__title_ass__visibility.yml
wisski_pathbuilder.wisski_path.g__actor.yml
wisski_pathbuilder.wisski_path.g__authority_document.yml
wisski_pathbuilder.wisski_path.g__begin_of_existence.yml
wisski_pathbuilder.wisski_path.g__culture_heritage_item.yml
wisski_pathbuilder.wisski_path.g__custom_term.yml
wisski_pathbuilder.wisski_path.g__data_record.yml
wisski_pathbuilder.wisski_path.g__date.yml
wisski_pathbuilder.wisski_path.g__digitization_process.yml
wisski_pathbuilder.wisski_path.g__dimensions.yml
wisski_pathbuilder.wisski_path.g__end_of_existence.yml
wisski_pathbuilder.wisski_path.g__item_history_activity.yml
wisski_pathbuilder.wisski_path.g__keyword.yml
wisski_pathbuilder.wisski_path.g__material.yml
wisski_pathbuilder.wisski_path.g__media_file.yml
wisski_pathbuilder.wisski_path.g__period.yml
wisski_pathbuilder.wisski_path.g__place.yml
wisski_pathbuilder.wisski_path.g__ressources.yml
wisski_pathbuilder.wisski_path.g__right.yml
wisski_pathbuilder.wisski_path.g__technique.yml
wisski_pathbuilder.wisski_path.g__titel_assignment.yml
wisski_pathbuilder.wisski_path.g__type.yml
wisski_pathbuilder.wisski_pathbuilder.default.yml
1 filename
2 core.entity_form_display.wisski_individual.b0bb97d703b09623b04167df1b5f3f49.default.yml
3 core.entity_form_display.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.default.yml
4 core.entity_form_display.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.default.yml
5 core.entity_form_display.wisski_individual.b29e446d50baead6233e4f0486368ed6.default.yml
6 core.entity_form_display.wisski_individual.b29e446d50baead6233e4f0486368ed6.reference_detailed.yml
7 core.entity_form_display.wisski_individual.b29e446d50baead6233e4f0486368ed6.reference_text.yml
8 core.entity_form_display.wisski_individual.b4e3bc7ca312a6c46228f35fbf7e1cee.default.yml
9 core.entity_form_display.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.default.yml
10 core.entity_form_display.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.default.yml
11 core.entity_form_display.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.reference_detailed.yml
12 core.entity_form_display.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.reference_text.yml
13 core.entity_form_display.wisski_individual.b6fdcccc1c6a08cb48abffecc5a31cfc.default.yml
14 core.entity_form_display.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.default.yml
15 core.entity_form_display.wisski_individual.b8a35d61f1bd2672835d376015222d21.default.yml
16 core.entity_form_display.wisski_individual.ba115ec3f3676cbec7ba8297a94bea48.default.yml
17 core.entity_form_display.wisski_individual.bad1642b861feb14ecad423091d4495b.default.yml
18 core.entity_form_display.wisski_individual.bb48a22d36f1c15cd16b143d23466812.default.yml
19 core.entity_form_display.wisski_individual.bb6bf561b183a2b1733ca97f262ab930.default.yml
20 core.entity_form_display.wisski_individual.bb79e2aca604c4feee0889e8979f00a6.default.yml
21 core.entity_form_display.wisski_individual.bc076202c79a386a55b105b7c82e252d.default.yml
22 core.entity_form_display.wisski_individual.bd0e80d09d3a2618e10a9bda2f85076b.default.yml
23 core.entity_form_display.wisski_individual.bd649063d3131a245922f7718d962ec6.default.yml
24 core.entity_form_display.wisski_individual.be6c0e85956559c87483917da3888e23.default.yml
25 core.entity_form_display.wisski_individual.be9be1c504c5df35dca1836f16d0ee73.default.yml
26 core.entity_form_display.wisski_individual.bf3b15207bd74301804eb30c87e0fe00.default.yml
27 core.entity_form_mode.wisski_individual.reference_detailed.yml
28 core.entity_form_mode.wisski_individual.reference_text.yml
29 core.entity_view_display.wisski_individual.b0bb97d703b09623b04167df1b5f3f49.default.yml
30 core.entity_view_display.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.default.yml
31 core.entity_view_display.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.default.yml
32 core.entity_view_display.wisski_individual.b29e446d50baead6233e4f0486368ed6.default.yml
33 core.entity_view_display.wisski_individual.b4e3bc7ca312a6c46228f35fbf7e1cee.default.yml
34 core.entity_view_display.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.default.yml
35 core.entity_view_display.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.in_data_record.yml
36 core.entity_view_display.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.reference.yml
37 core.entity_view_display.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.default.yml
38 core.entity_view_display.wisski_individual.b6fdcccc1c6a08cb48abffecc5a31cfc.default.yml
39 core.entity_view_display.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.default.yml
40 core.entity_view_display.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.multiple.yml
41 core.entity_view_display.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.reference.yml
42 core.entity_view_display.wisski_individual.b8a35d61f1bd2672835d376015222d21.default.yml
43 core.entity_view_display.wisski_individual.ba115ec3f3676cbec7ba8297a94bea48.default.yml
44 core.entity_view_display.wisski_individual.bad1642b861feb14ecad423091d4495b.default.yml
45 core.entity_view_display.wisski_individual.bb48a22d36f1c15cd16b143d23466812.default.yml
46 core.entity_view_display.wisski_individual.bb48a22d36f1c15cd16b143d23466812.reference.yml
47 core.entity_view_display.wisski_individual.bb6bf561b183a2b1733ca97f262ab930.default.yml
48 core.entity_view_display.wisski_individual.bb79e2aca604c4feee0889e8979f00a6.default.yml
49 core.entity_view_display.wisski_individual.bc076202c79a386a55b105b7c82e252d.default.yml
50 core.entity_view_display.wisski_individual.bd0e80d09d3a2618e10a9bda2f85076b.default.yml
51 core.entity_view_display.wisski_individual.bd649063d3131a245922f7718d962ec6.default.yml
52 core.entity_view_display.wisski_individual.be6c0e85956559c87483917da3888e23.default.yml
53 core.entity_view_display.wisski_individual.be6c0e85956559c87483917da3888e23.preferred_name.yml
54 core.entity_view_display.wisski_individual.be9be1c504c5df35dca1836f16d0ee73.default.yml
55 core.entity_view_display.wisski_individual.bf3b15207bd74301804eb30c87e0fe00.default.yml
56 core.entity_view_mode.wisski_individual.in_data_record.yml
57 core.entity_view_mode.wisski_individual.multiple.yml
58 core.entity_view_mode.wisski_individual.preferred_name.yml
59 core.entity_view_mode.wisski_individual.reference.yml
60 field.field.wisski_individual.b0bb97d703b09623b04167df1b5f3f49.f1ff3b967723f445933b8a9d7035aad2.yml
61 field.field.wisski_individual.b0bb97d703b09623b04167df1b5f3f49.fd26906e13c587b8451a6b2af4c08eb4.yml
62 field.field.wisski_individual.b0bb97d703b09623b04167df1b5f3f49.febe969b98b649621d4c11d0c0e32480.yml
63 field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f02460c4dea0c764d17fe66be8f02508.yml
64 field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f04ed8c79450669ddd5e93467f2a1a51.yml
65 field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f239c64d0bd4b9138bb8fb9e79942110.yml
66 field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f295382ce36e43723aefe2fdcbb0d825.yml
67 field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f539313cc1cf9a0db4bbe8f9aa5a8e45.yml
68 field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f573e1715065fb91e0d9b8a9cd3676ec.yml
69 field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f81d5c928f704125c6859e38f6b20499.yml
70 field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.f9bf6956a0719fd938b76bdf59701563.yml
71 field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.fae0f9922ce4953c25f6b6d7643459ac.yml
72 field.field.wisski_individual.b0fa9cc21598a987c556bc05d5e3889e.ffa950f2daa5ea8b4a36265e8afc3fd9.yml
73 field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.f0eee74eab34dac2e3f3042eb332d703.yml
74 field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.f883e31b3ad23a22cd4aa2fbd11159e2.yml
75 field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.fa7cfbe46f0dfc896c7c66fbc0a011ba.yml
76 field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.fb3e71f75bccac3e7aee7efdb2cb14d8.yml
77 field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.fcce64514b22835881e127a12fa0262d.yml
78 field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.fed7ddd55a3909def3c1a9c6f60b44ab.yml
79 field.field.wisski_individual.b29098a2dbcbda0f61cba5ba9e686f20.ff967c7b141984e1d4e0982c46d02490.yml
80 field.field.wisski_individual.b29e446d50baead6233e4f0486368ed6.f0d486a436c752d203c3d61be724ec0e.yml
81 field.field.wisski_individual.b29e446d50baead6233e4f0486368ed6.f3d7e2759ca9321d8f3cb142c21b2450.yml
82 field.field.wisski_individual.b29e446d50baead6233e4f0486368ed6.f92436d0dc6d2bc4d51d242302707128.yml
83 field.field.wisski_individual.b29e446d50baead6233e4f0486368ed6.fbd761428160e6e71e34a89c8947436b.yml
84 field.field.wisski_individual.b29e446d50baead6233e4f0486368ed6.ff261d2c17cf334dd083acf2f917c0d2.yml
85 field.field.wisski_individual.b4e3bc7ca312a6c46228f35fbf7e1cee.f15ccea9926a79f0d5a64969f2d281ff.yml
86 field.field.wisski_individual.b4e3bc7ca312a6c46228f35fbf7e1cee.f4cfb767e90ca07edc4f68299663c4de.yml
87 field.field.wisski_individual.b4e3bc7ca312a6c46228f35fbf7e1cee.f64fbe1124b1d557590cb01c7fdef63c.yml
88 field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.f0665bd9a349ddb1f3c710369fab8716.yml
89 field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.f3fd2d803386046f79aeda1387255c21.yml
90 field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.f8cada4d5f594d0b03f9a39c77492828.yml
91 field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.f92639d54a47119d4883a941cca24977.yml
92 field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.fcb7753907b00a53a4d85b2b76990ce8.yml
93 field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.fcda28daa1b9a3542d4b50c42b3768d1.yml
94 field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.fd06abbd8a2b0d0945cab573866f8b69.yml
95 field.field.wisski_individual.b619446f296dfb7c22cf022aac8ce20c.feed4362addfb137b333877006505ed1.yml
96 field.field.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.f07178031ead71efc4add43c67d498bf.yml
97 field.field.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.f6fdf07c98933aa4f6f7e6c28cb3fa33.yml
98 field.field.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.faa0cb687be0c5af723fbab86edfffd1.yml
99 field.field.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.fc26b447ad175ecae3d6eeb5f463a0e9.yml
100 field.field.wisski_individual.b66dd83c2f07cd0d188b31b879775f72.fe6c9de47066f3468c6aa80e2fc81acd.yml
101 field.field.wisski_individual.b6fdcccc1c6a08cb48abffecc5a31cfc.f2c5fa9933fe76dd4dbf5bb90b56b136.yml
102 field.field.wisski_individual.b6fdcccc1c6a08cb48abffecc5a31cfc.f6821bd09ffdef06b0c5fefaf02df2f0.yml
103 field.field.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.f35ec1009a594afbd49536c5fc558e04.yml
104 field.field.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.f62a3579fc0b41ba01707d58d5cef641.yml
105 field.field.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.f9ed89e6c011d4a0ed5ac9cd5561ce38.yml
106 field.field.wisski_individual.b7f7eceaa540597c1440f1c470bebe07.feb35e71b6bcf82847c5f3f6a57f6274.yml
107 field.field.wisski_individual.b8a35d61f1bd2672835d376015222d21.f1aee0c3ecfa2791fe7b1271561c0e12.yml
108 field.field.wisski_individual.b8a35d61f1bd2672835d376015222d21.f5f4cf8c6abf0ea929305a98956a4380.yml
109 field.field.wisski_individual.b8a35d61f1bd2672835d376015222d21.f71837c561d00ed05d853339747a44bc.yml
110 field.field.wisski_individual.ba115ec3f3676cbec7ba8297a94bea48.f481c15a6aeb4fad22258aa4a00064c6.yml
111 field.field.wisski_individual.ba115ec3f3676cbec7ba8297a94bea48.f5fc867134b7662a70778dfb75523c7c.yml
112 field.field.wisski_individual.ba115ec3f3676cbec7ba8297a94bea48.f7e9004d4e3ca106c0a39c63c1f1386c.yml
113 field.field.wisski_individual.ba115ec3f3676cbec7ba8297a94bea48.f86ee13d36aa1ccad56e6b250af24209.yml
114 field.field.wisski_individual.bad1642b861feb14ecad423091d4495b.f7724300936afe7f841689ce8dda3519.yml
115 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f0a4220f174873b3b1dff5c4f0ab038d.yml
116 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f2b4b472cafb7f4c46a7c822794ed9dd.yml
117 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f2de9f0b2efc868a635f5adfad12a810.yml
118 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f2f58a56928267034a028100735346f1.yml
119 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f3a37ff34347b001f327ac2bac9dec86.yml
120 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f65a6586daed6cba734f174af630bdcf.yml
121 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f8478ccaf30ed82bc2287f238406cda8.yml
122 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f8e173631161acd62dba6f8cbd3592de.yml
123 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f9188639e85ca8d8b8703232f59f1e97.yml
124 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.f9744c24e4e75df81149232ff393ea47.yml
125 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.fbbd0fc7866781fbe7913c284ffd6427.yml
126 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.fcbad61edd92acfbf7014e118c757c7c.yml
127 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.ff49657fae8a4f553b233b221ba33f8e.yml
128 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.ff95e2be93a5fa409f76e3d6fc338bf1.yml
129 field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.field__vf__title.yml
130 field.field.wisski_individual.bb6bf561b183a2b1733ca97f262ab930.f44970b58e7b700acf846fbac6d527c3.yml
131 field.field.wisski_individual.bb6bf561b183a2b1733ca97f262ab930.fbc6fd9d737b5047b949baa68c1c543a.yml
132 field.field.wisski_individual.bb6bf561b183a2b1733ca97f262ab930.fc8e3f1ccd8987fbb8567b52ced21d25.yml
133 field.field.wisski_individual.bb6bf561b183a2b1733ca97f262ab930.fdbb81d6d2bb33a8e75567aaff54bbd8.yml
134 field.field.wisski_individual.bb79e2aca604c4feee0889e8979f00a6.ffed4df47440f25499f56fa7e4d74710.yml
135 field.field.wisski_individual.bc076202c79a386a55b105b7c82e252d.fb1e7967174594ce391b147209a1a9a4.yml
136 field.field.wisski_individual.bc076202c79a386a55b105b7c82e252d.fbdb442d391782be5eede091f56a81de.yml
137 field.field.wisski_individual.bd0e80d09d3a2618e10a9bda2f85076b.f0f8bd10e7b63f0a1868f707c9a21c39.yml
138 field.field.wisski_individual.bd0e80d09d3a2618e10a9bda2f85076b.f6086615f0c43675ad484d5c999f3f75.yml
139 field.field.wisski_individual.bd0e80d09d3a2618e10a9bda2f85076b.f87beac06a07ace7adf427cd85de0e6e.yml
140 field.field.wisski_individual.bd649063d3131a245922f7718d962ec6.f19bb59b1cf639dc539f94aefe256dd4.yml
141 field.field.wisski_individual.be6c0e85956559c87483917da3888e23.f2b62e51766b434f435e6accb85ced1b.yml
142 field.field.wisski_individual.be6c0e85956559c87483917da3888e23.f565edc65db3ac9ae753871b344a9918.yml
143 field.field.wisski_individual.be6c0e85956559c87483917da3888e23.f7397b24e80a4f0044962496b226c077.yml
144 field.field.wisski_individual.be6c0e85956559c87483917da3888e23.fb7c4c986649cff59847eaa6ba5f3c52.yml
145 field.field.wisski_individual.be6c0e85956559c87483917da3888e23.fe7df91c90d7aa9931e5926ac4393d00.yml
146 field.field.wisski_individual.be6c0e85956559c87483917da3888e23.ff4f59194bdfa4ae75cdad83a38ba197.yml
147 field.field.wisski_individual.be6c0e85956559c87483917da3888e23.ffd2f8520a495b47b848996f6d373fd1.yml
148 field.field.wisski_individual.be9be1c504c5df35dca1836f16d0ee73.f01c7d46b9913b99909f50c098a1920a.yml
149 field.field.wisski_individual.be9be1c504c5df35dca1836f16d0ee73.f8dba8630367c32aeb2557097a2d0259.yml
150 field.field.wisski_individual.be9be1c504c5df35dca1836f16d0ee73.f971858ff1b65215d8e24508998be0d7.yml
151 field.field.wisski_individual.be9be1c504c5df35dca1836f16d0ee73.fd9046c3faf34e0e09444744b19aad49.yml
152 field.field.wisski_individual.bf3b15207bd74301804eb30c87e0fe00.f75e5d31023925b916d99cb819c720d5.yml
153 field.field.wisski_individual.bf3b15207bd74301804eb30c87e0fe00.f90b172c9e7d5bf32cbd3ad8fc2eff90.yml
154 field.field.wisski_individual.bf3b15207bd74301804eb30c87e0fe00.fa4020f71a81e0ebf7cc3ebd60c39017.yml
155 field.storage.wisski_individual.f01c7d46b9913b99909f50c098a1920a.yml
156 field.storage.wisski_individual.f02460c4dea0c764d17fe66be8f02508.yml
157 field.storage.wisski_individual.f04ed8c79450669ddd5e93467f2a1a51.yml
158 field.storage.wisski_individual.f0665bd9a349ddb1f3c710369fab8716.yml
159 field.storage.wisski_individual.f07178031ead71efc4add43c67d498bf.yml
160 field.storage.wisski_individual.f0a4220f174873b3b1dff5c4f0ab038d.yml
161 field.storage.wisski_individual.f0d486a436c752d203c3d61be724ec0e.yml
162 field.storage.wisski_individual.f0eee74eab34dac2e3f3042eb332d703.yml
163 field.storage.wisski_individual.f0f8bd10e7b63f0a1868f707c9a21c39.yml
164 field.storage.wisski_individual.f15ccea9926a79f0d5a64969f2d281ff.yml
165 field.storage.wisski_individual.f19bb59b1cf639dc539f94aefe256dd4.yml
166 field.storage.wisski_individual.f1aee0c3ecfa2791fe7b1271561c0e12.yml
167 field.storage.wisski_individual.f1ff3b967723f445933b8a9d7035aad2.yml
168 field.storage.wisski_individual.f239c64d0bd4b9138bb8fb9e79942110.yml
169 field.storage.wisski_individual.f295382ce36e43723aefe2fdcbb0d825.yml
170 field.storage.wisski_individual.f2b4b472cafb7f4c46a7c822794ed9dd.yml
171 field.storage.wisski_individual.f2b62e51766b434f435e6accb85ced1b.yml
172 field.storage.wisski_individual.f2c5fa9933fe76dd4dbf5bb90b56b136.yml
173 field.storage.wisski_individual.f2de9f0b2efc868a635f5adfad12a810.yml
174 field.storage.wisski_individual.f2f58a56928267034a028100735346f1.yml
175 field.storage.wisski_individual.f35ec1009a594afbd49536c5fc558e04.yml
176 field.storage.wisski_individual.f3a37ff34347b001f327ac2bac9dec86.yml
177 field.storage.wisski_individual.f3d7e2759ca9321d8f3cb142c21b2450.yml
178 field.storage.wisski_individual.f3fd2d803386046f79aeda1387255c21.yml
179 field.storage.wisski_individual.f44970b58e7b700acf846fbac6d527c3.yml
180 field.storage.wisski_individual.f481c15a6aeb4fad22258aa4a00064c6.yml
181 field.storage.wisski_individual.f4cfb767e90ca07edc4f68299663c4de.yml
182 field.storage.wisski_individual.f539313cc1cf9a0db4bbe8f9aa5a8e45.yml
183 field.storage.wisski_individual.f565edc65db3ac9ae753871b344a9918.yml
184 field.storage.wisski_individual.f573e1715065fb91e0d9b8a9cd3676ec.yml
185 field.storage.wisski_individual.f5f4cf8c6abf0ea929305a98956a4380.yml
186 field.storage.wisski_individual.f5fc867134b7662a70778dfb75523c7c.yml
187 field.storage.wisski_individual.f6086615f0c43675ad484d5c999f3f75.yml
188 field.storage.wisski_individual.f62a3579fc0b41ba01707d58d5cef641.yml
189 field.storage.wisski_individual.f64fbe1124b1d557590cb01c7fdef63c.yml
190 field.storage.wisski_individual.f65a6586daed6cba734f174af630bdcf.yml
191 field.storage.wisski_individual.f6821bd09ffdef06b0c5fefaf02df2f0.yml
192 field.storage.wisski_individual.f6fdf07c98933aa4f6f7e6c28cb3fa33.yml
193 field.storage.wisski_individual.f71837c561d00ed05d853339747a44bc.yml
194 field.storage.wisski_individual.f7397b24e80a4f0044962496b226c077.yml
195 field.storage.wisski_individual.f75e5d31023925b916d99cb819c720d5.yml
196 field.storage.wisski_individual.f7724300936afe7f841689ce8dda3519.yml
197 field.storage.wisski_individual.f7e9004d4e3ca106c0a39c63c1f1386c.yml
198 field.storage.wisski_individual.f81d5c928f704125c6859e38f6b20499.yml
199 field.storage.wisski_individual.f8478ccaf30ed82bc2287f238406cda8.yml
200 field.storage.wisski_individual.f86ee13d36aa1ccad56e6b250af24209.yml
201 field.storage.wisski_individual.f87beac06a07ace7adf427cd85de0e6e.yml
202 field.storage.wisski_individual.f883e31b3ad23a22cd4aa2fbd11159e2.yml
203 field.storage.wisski_individual.f8cada4d5f594d0b03f9a39c77492828.yml
204 field.storage.wisski_individual.f8dba8630367c32aeb2557097a2d0259.yml
205 field.storage.wisski_individual.f8e173631161acd62dba6f8cbd3592de.yml
206 field.storage.wisski_individual.f90b172c9e7d5bf32cbd3ad8fc2eff90.yml
207 field.storage.wisski_individual.f9188639e85ca8d8b8703232f59f1e97.yml
208 field.storage.wisski_individual.f92436d0dc6d2bc4d51d242302707128.yml
209 field.storage.wisski_individual.f92639d54a47119d4883a941cca24977.yml
210 field.storage.wisski_individual.f971858ff1b65215d8e24508998be0d7.yml
211 field.storage.wisski_individual.f9744c24e4e75df81149232ff393ea47.yml
212 field.storage.wisski_individual.f9bf6956a0719fd938b76bdf59701563.yml
213 field.storage.wisski_individual.f9ed89e6c011d4a0ed5ac9cd5561ce38.yml
214 field.storage.wisski_individual.fa4020f71a81e0ebf7cc3ebd60c39017.yml
215 field.storage.wisski_individual.fa7cfbe46f0dfc896c7c66fbc0a011ba.yml
216 field.storage.wisski_individual.faa0cb687be0c5af723fbab86edfffd1.yml
217 field.storage.wisski_individual.fae0f9922ce4953c25f6b6d7643459ac.yml
218 field.storage.wisski_individual.fb1e7967174594ce391b147209a1a9a4.yml
219 field.storage.wisski_individual.fb3e71f75bccac3e7aee7efdb2cb14d8.yml
220 field.storage.wisski_individual.fb7c4c986649cff59847eaa6ba5f3c52.yml
221 field.storage.wisski_individual.fbbd0fc7866781fbe7913c284ffd6427.yml
222 field.storage.wisski_individual.fbc6fd9d737b5047b949baa68c1c543a.yml
223 field.storage.wisski_individual.fbd761428160e6e71e34a89c8947436b.yml
224 field.storage.wisski_individual.fbdb442d391782be5eede091f56a81de.yml
225 field.storage.wisski_individual.fc26b447ad175ecae3d6eeb5f463a0e9.yml
226 field.storage.wisski_individual.fc8e3f1ccd8987fbb8567b52ced21d25.yml
227 field.storage.wisski_individual.fcb7753907b00a53a4d85b2b76990ce8.yml
228 field.storage.wisski_individual.fcbad61edd92acfbf7014e118c757c7c.yml
229 field.storage.wisski_individual.fcce64514b22835881e127a12fa0262d.yml
230 field.storage.wisski_individual.fcda28daa1b9a3542d4b50c42b3768d1.yml
231 field.storage.wisski_individual.fd06abbd8a2b0d0945cab573866f8b69.yml
232 field.storage.wisski_individual.fd26906e13c587b8451a6b2af4c08eb4.yml
233 field.storage.wisski_individual.fd9046c3faf34e0e09444744b19aad49.yml
234 field.storage.wisski_individual.fdbb81d6d2bb33a8e75567aaff54bbd8.yml
235 field.storage.wisski_individual.fe6c9de47066f3468c6aa80e2fc81acd.yml
236 field.storage.wisski_individual.fe7df91c90d7aa9931e5926ac4393d00.yml
237 field.storage.wisski_individual.feb35e71b6bcf82847c5f3f6a57f6274.yml
238 field.storage.wisski_individual.febe969b98b649621d4c11d0c0e32480.yml
239 field.storage.wisski_individual.fed7ddd55a3909def3c1a9c6f60b44ab.yml
240 field.storage.wisski_individual.feed4362addfb137b333877006505ed1.yml
241 field.storage.wisski_individual.ff261d2c17cf334dd083acf2f917c0d2.yml
242 field.storage.wisski_individual.ff49657fae8a4f553b233b221ba33f8e.yml
243 field.storage.wisski_individual.ff4f59194bdfa4ae75cdad83a38ba197.yml
244 field.storage.wisski_individual.ff95e2be93a5fa409f76e3d6fc338bf1.yml
245 field.storage.wisski_individual.ff967c7b141984e1d4e0982c46d02490.yml
246 field.storage.wisski_individual.ffa950f2daa5ea8b4a36265e8afc3fd9.yml
247 field.storage.wisski_individual.ffd2f8520a495b47b848996f6d373fd1.yml
248 field.storage.wisski_individual.ffed4df47440f25499f56fa7e4d74710.yml
249 field.storage.wisski_individual.field__vf__title.yml
250 views.view.b0bb97d703b09623b04167df1b5f3f49.yml
251 views.view.b0fa9cc21598a987c556bc05d5e3889e.yml
252 views.view.b29098a2dbcbda0f61cba5ba9e686f20.yml
253 views.view.b29e446d50baead6233e4f0486368ed6.yml
254 views.view.b4e3bc7ca312a6c46228f35fbf7e1cee.yml
255 views.view.b619446f296dfb7c22cf022aac8ce20c.yml
256 views.view.b66dd83c2f07cd0d188b31b879775f72.yml
257 views.view.b6fdcccc1c6a08cb48abffecc5a31cfc.yml
258 views.view.b7f7eceaa540597c1440f1c470bebe07.yml
259 views.view.b8a35d61f1bd2672835d376015222d21.yml
260 views.view.ba115ec3f3676cbec7ba8297a94bea48.yml
261 views.view.bad1642b861feb14ecad423091d4495b.yml
262 views.view.bb48a22d36f1c15cd16b143d23466812.yml
263 views.view.bb6bf561b183a2b1733ca97f262ab930.yml
264 views.view.bb79e2aca604c4feee0889e8979f00a6.yml
265 views.view.bc076202c79a386a55b105b7c82e252d.yml
266 views.view.bd0e80d09d3a2618e10a9bda2f85076b.yml
267 views.view.bd649063d3131a245922f7718d962ec6.yml
268 views.view.be6c0e85956559c87483917da3888e23.yml
269 views.view.be9be1c504c5df35dca1836f16d0ee73.yml
270 views.view.bf3b15207bd74301804eb30c87e0fe00.yml
271 wisski_core.wisski_bundle.b0bb97d703b09623b04167df1b5f3f49.yml
272 wisski_core.wisski_bundle.b0fa9cc21598a987c556bc05d5e3889e.yml
273 wisski_core.wisski_bundle.b29098a2dbcbda0f61cba5ba9e686f20.yml
274 wisski_core.wisski_bundle.b29e446d50baead6233e4f0486368ed6.yml
275 wisski_core.wisski_bundle.b4e3bc7ca312a6c46228f35fbf7e1cee.yml
276 wisski_core.wisski_bundle.b619446f296dfb7c22cf022aac8ce20c.yml
277 wisski_core.wisski_bundle.b66dd83c2f07cd0d188b31b879775f72.yml
278 wisski_core.wisski_bundle.b6fdcccc1c6a08cb48abffecc5a31cfc.yml
279 wisski_core.wisski_bundle.b7f7eceaa540597c1440f1c470bebe07.yml
280 wisski_core.wisski_bundle.b8a35d61f1bd2672835d376015222d21.yml
281 wisski_core.wisski_bundle.ba115ec3f3676cbec7ba8297a94bea48.yml
282 wisski_core.wisski_bundle.bad1642b861feb14ecad423091d4495b.yml
283 wisski_core.wisski_bundle.bb48a22d36f1c15cd16b143d23466812.yml
284 wisski_core.wisski_bundle.bb6bf561b183a2b1733ca97f262ab930.yml
285 wisski_core.wisski_bundle.bb79e2aca604c4feee0889e8979f00a6.yml
286 wisski_core.wisski_bundle.bc076202c79a386a55b105b7c82e252d.yml
287 wisski_core.wisski_bundle.bd0e80d09d3a2618e10a9bda2f85076b.yml
288 wisski_core.wisski_bundle.bd649063d3131a245922f7718d962ec6.yml
289 wisski_core.wisski_bundle.be6c0e85956559c87483917da3888e23.yml
290 wisski_core.wisski_bundle.be9be1c504c5df35dca1836f16d0ee73.yml
291 wisski_core.wisski_bundle.bf3b15207bd74301804eb30c87e0fe00.yml
292 wisski_pathbuilder.settings.yml
293 wisski_pathbuilder.wisski_path.f__actor__alter_names.yml
294 wisski_pathbuilder.wisski_path.f__actor__authority_data.yml
295 wisski_pathbuilder.wisski_path.f__actor__begin_of_exist.yml
296 wisski_pathbuilder.wisski_path.f__actor__display_authority_name.yml
297 wisski_pathbuilder.wisski_path.f__actor__display_custom_name.yml
298 wisski_pathbuilder.wisski_path.f__actor__end_of_exist.yml
299 wisski_pathbuilder.wisski_path.f__actor__name.yml
300 wisski_pathbuilder.wisski_path.f__actor__occupation.yml
301 wisski_pathbuilder.wisski_path.f__actor__organisation_type.yml
302 wisski_pathbuilder.wisski_path.f__actor__type.yml
303 wisski_pathbuilder.wisski_path.f__auth_data__authority_document.yml
304 wisski_pathbuilder.wisski_path.f__auth_data__entity_type.yml
305 wisski_pathbuilder.wisski_path.f__auth_data__preferred_term.yml
306 wisski_pathbuilder.wisski_path.f__auth_data__url.yml
307 wisski_pathbuilder.wisski_path.f__auth_doc__acronym.yml
308 wisski_pathbuilder.wisski_path.f__auth_doc__name.yml
309 wisski_pathbuilder.wisski_path.f__auth_doc__website.yml
310 wisski_pathbuilder.wisski_path.f__boe__participants.yml
311 wisski_pathbuilder.wisski_path.f__boe__period.yml
312 wisski_pathbuilder.wisski_path.f__boe__place.yml
313 wisski_pathbuilder.wisski_path.f__cult_her_item__data_record.yml
314 wisski_pathbuilder.wisski_path.f__cult_her_item__dimension.yml
315 wisski_pathbuilder.wisski_path.f__cult_her_item__discription.yml
316 wisski_pathbuilder.wisski_path.f__cult_her_item__identifier.yml
317 wisski_pathbuilder.wisski_path.f__cult_her_item__item_history_activity.yml
318 wisski_pathbuilder.wisski_path.f__cult_her_item__keyword.yml
319 wisski_pathbuilder.wisski_path.f__cult_her_item__material.yml
320 wisski_pathbuilder.wisski_path.f__cult_her_item__media_file.yml
321 wisski_pathbuilder.wisski_path.f__cult_her_item__place.yml
322 wisski_pathbuilder.wisski_path.f__cult_her_item__ressoucen.yml
323 wisski_pathbuilder.wisski_path.f__cult_her_item__technique.yml
324 wisski_pathbuilder.wisski_path.f__cult_her_item__title.yml
325 wisski_pathbuilder.wisski_path.f__cult_her_item__title_ref.yml
326 wisski_pathbuilder.wisski_path.f__cult_her_item__type.yml
327 wisski_pathbuilder.wisski_path.f__custom_term__alternative_name.yml
328 wisski_pathbuilder.wisski_path.f__custom_term__preferred_name.yml
329 wisski_pathbuilder.wisski_path.f__data_record__actor.yml
330 wisski_pathbuilder.wisski_path.f__data_record__dig_proc.yml
331 wisski_pathbuilder.wisski_path.f__data_record__id.yml
332 wisski_pathbuilder.wisski_path.f__data_record__language.yml
333 wisski_pathbuilder.wisski_path.f__data_record__media_file.yml
334 wisski_pathbuilder.wisski_path.f__data_record__rights.yml
335 wisski_pathbuilder.wisski_path.f__data_record__type.yml
336 wisski_pathbuilder.wisski_path.f__date__appellation.yml
337 wisski_pathbuilder.wisski_path.f__date__day.yml
338 wisski_pathbuilder.wisski_path.f__date__month.yml
339 wisski_pathbuilder.wisski_path.f__date__operator.yml
340 wisski_pathbuilder.wisski_path.f__date__year.yml
341 wisski_pathbuilder.wisski_path.f__dig_proc__creator.yml
342 wisski_pathbuilder.wisski_path.f__dim__type.yml
343 wisski_pathbuilder.wisski_path.f__dim__unit.yml
344 wisski_pathbuilder.wisski_path.f__dim__value.yml
345 wisski_pathbuilder.wisski_path.f__eoe__participants.yml
346 wisski_pathbuilder.wisski_path.f__eoe__place.yml
347 wisski_pathbuilder.wisski_path.f__eoe__zeitraum.yml
348 wisski_pathbuilder.wisski_path.f__item_history_activity__actor.yml
349 wisski_pathbuilder.wisski_path.f__item_history_activity__date.yml
350 wisski_pathbuilder.wisski_path.f__item_history_activity__place.yml
351 wisski_pathbuilder.wisski_path.f__item_history_activity__type.yml
352 wisski_pathbuilder.wisski_path.f__keyword__appellation.yml
353 wisski_pathbuilder.wisski_path.f__keyword__used_by_object.yml
354 wisski_pathbuilder.wisski_path.f__material__type.yml
355 wisski_pathbuilder.wisski_path.f__media_file__audio.yml
356 wisski_pathbuilder.wisski_path.f__media_file__description.yml
357 wisski_pathbuilder.wisski_path.f__media_file__document.yml
358 wisski_pathbuilder.wisski_path.f__media_file__image.yml
359 wisski_pathbuilder.wisski_path.f__media_file__rights.yml
360 wisski_pathbuilder.wisski_path.f__media_file__type.yml
361 wisski_pathbuilder.wisski_path.f__media_file__url.yml
362 wisski_pathbuilder.wisski_path.f__media_file__video.yml
363 wisski_pathbuilder.wisski_path.f__period__begin_det.yml
364 wisski_pathbuilder.wisski_path.f__period__begin_text.yml
365 wisski_pathbuilder.wisski_path.f__period__end_det.yml
366 wisski_pathbuilder.wisski_path.f__period__end_text.yml
367 wisski_pathbuilder.wisski_path.f__period__precision.yml
368 wisski_pathbuilder.wisski_path.f__place__alternative_name.yml
369 wisski_pathbuilder.wisski_path.f__place__authority_data.yml
370 wisski_pathbuilder.wisski_path.f__place__display_authority_name.yml
371 wisski_pathbuilder.wisski_path.f__place__display_custom_name.yml
372 wisski_pathbuilder.wisski_path.f__place__place.yml
373 wisski_pathbuilder.wisski_path.f__place__preferred_name.yml
374 wisski_pathbuilder.wisski_path.f__place__spatial_coordinates.yml
375 wisski_pathbuilder.wisski_path.f__resource__appellation.yml
376 wisski_pathbuilder.wisski_path.f__resource__comment.yml
377 wisski_pathbuilder.wisski_path.f__resource__link.yml
378 wisski_pathbuilder.wisski_path.f__resource__type.yml
379 wisski_pathbuilder.wisski_path.f__right__actor.yml
380 wisski_pathbuilder.wisski_path.f__right__usage.yml
381 wisski_pathbuilder.wisski_path.f__right_description.yml
382 wisski_pathbuilder.wisski_path.f__technique__type.yml
383 wisski_pathbuilder.wisski_path.f__title_ass__objekt_id.yml
384 wisski_pathbuilder.wisski_path.f__title_ass__status.yml
385 wisski_pathbuilder.wisski_path.f__title_ass__titel.yml
386 wisski_pathbuilder.wisski_path.f__title_ass__visibility.yml
387 wisski_pathbuilder.wisski_path.g__actor.yml
388 wisski_pathbuilder.wisski_path.g__authority_document.yml
389 wisski_pathbuilder.wisski_path.g__begin_of_existence.yml
390 wisski_pathbuilder.wisski_path.g__culture_heritage_item.yml
391 wisski_pathbuilder.wisski_path.g__custom_term.yml
392 wisski_pathbuilder.wisski_path.g__data_record.yml
393 wisski_pathbuilder.wisski_path.g__date.yml
394 wisski_pathbuilder.wisski_path.g__digitization_process.yml
395 wisski_pathbuilder.wisski_path.g__dimensions.yml
396 wisski_pathbuilder.wisski_path.g__end_of_existence.yml
397 wisski_pathbuilder.wisski_path.g__item_history_activity.yml
398 wisski_pathbuilder.wisski_path.g__keyword.yml
399 wisski_pathbuilder.wisski_path.g__material.yml
400 wisski_pathbuilder.wisski_path.g__media_file.yml
401 wisski_pathbuilder.wisski_path.g__period.yml
402 wisski_pathbuilder.wisski_path.g__place.yml
403 wisski_pathbuilder.wisski_path.g__ressources.yml
404 wisski_pathbuilder.wisski_path.g__right.yml
405 wisski_pathbuilder.wisski_path.g__technique.yml
406 wisski_pathbuilder.wisski_path.g__titel_assignment.yml
407 wisski_pathbuilder.wisski_path.g__type.yml
408 wisski_pathbuilder.wisski_pathbuilder.default.yml

View file

@ -0,0 +1,9 @@
field:
name: field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.field__vf__title
reason: because we need target id instead of uuid
field:
name: field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.field__object__vf__ownership
reason: because we need target id instead of uuid
views:
name: views.view.block_content
reason: false positive

View file

@ -1,3 +1,9 @@
field: field:
name: field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.field__vf__title name: field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.field__vf__title
reason: because we need target id instead of uuid reason: because we need target id instead of uuid
field:
name: field.field.wisski_individual.bb48a22d36f1c15cd16b143d23466812.field__object__vf__ownership
reason: because we need target id instead of uuid
views:
name: views.view.block_content
reason: false positive