From f7f1427bd5722d0cb786a5340c08a7c7171a070a Mon Sep 17 00:00:00 2001 From: Alexander Watzinger Date: Fri, 11 Oct 2024 16:50:04 +0200 Subject: [PATCH 01/21] Began SQl fix for #2357 - wrong links for references --- config/database_versions.py | 1 + install/upgrade/8.8.0.sql | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 install/upgrade/8.8.0.sql diff --git a/config/database_versions.py b/config/database_versions.py index 8a85480d4..3e14ab526 100644 --- a/config/database_versions.py +++ b/config/database_versions.py @@ -1,5 +1,6 @@ # Used for automatic database upgrades and version checks DATABASE_VERSIONS = [ + '8.8.0', '8.6.0', '8.5.0', '8.4.0', diff --git a/install/upgrade/8.8.0.sql b/install/upgrade/8.8.0.sql new file mode 100644 index 000000000..c68a3f334 --- /dev/null +++ b/install/upgrade/8.8.0.sql @@ -0,0 +1,35 @@ +BEGIN; + +-- Raise database version +UPDATE web.settings SET value = '8.8.0' WHERE name = 'database_version'; + +-- #2357: Wrong direction for external references with files +-- This is work in progress! + + +-- bibliography and edition should always be the domain for P67 - referenced by +UPDATE model.link +SET (domain_id, range_id) = (range_id, domain_id) +WHERE id IN ( + SELECT l.id + FROM model.link l + JOIN model.entity d ON l.domain_id = d.id + JOIN model.entity r ON l.range_id = r.id AND r.openatlas_class_name IN ('bibliography', 'edition') + WHERE l.property_code = 'P67'); + + +-- check for bad -- +SELECT l.id, property_code, domain_id, d.name, range_id, r.name + FROM model.link l + JOIN model.entity d ON l.domain_id = d.id + JOIN model.entity r ON l.range_id = r.id AND r.openatlas_class_name IN ('bibliography', 'edition') + WHERE l.property_code = 'P67' + +-- check for good -- +SELECT l.id, property_code, domain_id, d.name, range_id, r.name + FROM model.link l + JOIN model.entity d ON l.domain_id = d.id AND d.openatlas_class_name IN ('bibliography', 'edition') + JOIN model.entity r ON l.range_id = r.id + WHERE l.property_code = 'P67' + +END; From 0b06cfb208b6f0ffde527f943fae216d2bc8f756 Mon Sep 17 00:00:00 2001 From: Alexander Watzinger Date: Sun, 13 Oct 2024 18:09:57 +0200 Subject: [PATCH 02/21] Added SQL query for P67 link combinations --- install/upgrade/8.8.0.sql | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/install/upgrade/8.8.0.sql b/install/upgrade/8.8.0.sql index c68a3f334..176d63f2e 100644 --- a/install/upgrade/8.8.0.sql +++ b/install/upgrade/8.8.0.sql @@ -7,6 +7,20 @@ UPDATE web.settings SET value = '8.8.0' WHERE name = 'database_version'; -- This is work in progress! +-- check general P67 counts +SELECT DISTINCT + count(l.property_code), + d.openatlas_class_name AS domain, + l.property_code, + r.openatlas_class_name AS range +FROM model.link l +JOIN model.entity d ON l.domain_id = d.id +JOIN model.entity r ON l.range_id = r.id +WHERE l.property_code = 'P67' +GROUP BY l.property_code, d.openatlas_class_name, r.openatlas_class_name +ORDER BY domain, range + + -- bibliography and edition should always be the domain for P67 - referenced by UPDATE model.link SET (domain_id, range_id) = (range_id, domain_id) From 836e458cf892181ed7e5c2d49f055ff10e394ce5 Mon Sep 17 00:00:00 2001 From: Alexander Watzinger Date: Mon, 14 Oct 2024 13:54:00 +0200 Subject: [PATCH 03/21] Raised db version in install SQL --- install/3_data_web.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/3_data_web.sql b/install/3_data_web.sql index 1c34a0c68..b82ce742d 100644 --- a/install/3_data_web.sql +++ b/install/3_data_web.sql @@ -15,7 +15,7 @@ INSERT INTO web.user (username, password, active, email, group_id) VALUES ( (SELECT id FROM web.group WHERE name = 'admin')); INSERT INTO web.settings (name, value) VALUES - ('database_version', '8.6.0'), + ('database_version', '8.8.0'), ('api_public', ''), ('default_language', 'en'), ('table_rows', '25'), From b5bf95044a41e11558617d0b00f256118b02fb73 Mon Sep 17 00:00:00 2001 From: Bernhard Koschicek-Krombholz Date: Tue, 15 Oct 2024 13:44:01 +0200 Subject: [PATCH 04/21] #2354 page field of reference import allow spaces --- openatlas/models/imports.py | 25 ++++++++++++++++++++++++- openatlas/static/example.csv | 2 +- openatlas/views/imports.py | 6 ++++-- sphinx/source/admin/import.rst | 1 + 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/openatlas/models/imports.py b/openatlas/models/imports.py index b92dbeaa9..bdcbbbc14 100644 --- a/openatlas/models/imports.py +++ b/openatlas/models/imports.py @@ -161,6 +161,8 @@ def link_types(entity: Entity, row: dict[str, Any], class_: str) -> None: def link_references(entity: Entity, row: dict[str, Any], class_: str) -> None: if data := row.get('references'): + if '"' in str(data): + data = clean_reference_pages(str(data)) for references in str(data).split(): reference = references.split(';') if len(reference) <= 2 and reference[0].isdigit(): @@ -168,7 +170,7 @@ def link_references(entity: Entity, row: dict[str, Any], class_: str) -> None: ref_entity = ApiEntity.get_by_id(int(reference[0])) except EntityDoesNotExistError: continue - page = reference[1] if len(reference) > 1 else None + page = reference[1].replace('|', ' ') or None ref_entity.link('P67', entity, page) match_types = get_match_types() systems = list(set(i for i in row if i.startswith('reference_system_'))) @@ -214,3 +216,24 @@ def insert_gis(entity: Entity, row: dict[str, Any], project: Project) -> None: Gis.insert_wkt(entity, location, project, poly) else: Gis.insert_wkt(entity, location, project, wkt_) + + +def clean_reference_pages(value: str) -> str: + new_string = "" + inside_quotes = False + current_part = "" + + for char in value: + if char == '"': + if inside_quotes: + modified_part = current_part.replace(' ', '|') + new_string += modified_part + inside_quotes = False + current_part = "" + else: + inside_quotes = True + elif inside_quotes: + current_part += char + else: + new_string += char + return new_string diff --git a/openatlas/static/example.csv b/openatlas/static/example.csv index 8e478fb28..874751eb0 100644 --- a/openatlas/static/example.csv +++ b/openatlas/static/example.csv @@ -1,4 +1,4 @@ id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,references,reference_system_wikidata,reference_system_geonames,administrative_unit,historical_place -place_1,Vienna,Wien;City of Vienna,Capital of Austria,1500-01-01,1500-12-31,It was a rainy day.,2045-01-01,2049-12-31,We'll see about that.,"POLYGON((16.1203 48.30671, 16.606275 48.30671, 16.606275 48.3154, 16.1203 48.3154, 16.1203 48.30671))",80 184895,128787;-13.56,117293;IV,Q152419;close_match,2761369;exact_match,87,221630 +place_1,Vienna,Wien;City of Vienna,Capital of Austria,1500-01-01,1500-12-31,It was a rainy day.,2045-01-01,2049-12-31,We'll see about that.,"POLYGON((16.1203 48.30671, 16.606275 48.30671, 16.606275 48.3154, 16.1203 48.3154, 16.1203 48.30671))",80 184895,128787;-13.56,117293;"IV, 23-45" 23235;"45 34",Q152419;close_match,2761369;exact_match,87,221630 place_2,London,,,,,,,,,"POINT (-0.1290 51.5053)",,,,,,, place_3,Rom,,,,,,,,,"LINESTRING (12.458533781141528 41.922205268362234, 12.53062334955289 41.917606998887024, 12.52169797441624 41.888476931243254)",,,,,,, diff --git a/openatlas/views/imports.py b/openatlas/views/imports.py index bd6a7208b..0ef2d8c48 100644 --- a/openatlas/views/imports.py +++ b/openatlas/views/imports.py @@ -34,7 +34,7 @@ from openatlas.models.entity import Entity from openatlas.models.imports import ( Project, check_duplicates, check_single_type_duplicates, check_type_id, - get_origin_ids, import_data_) + clean_reference_pages, get_origin_ids, import_data_) _('invalid columns') _('possible duplicates') @@ -490,6 +490,8 @@ def check_cell_value( value = ' '.join(value_types) case 'references' if value: references = [] + if '"' in str(value): + value = clean_reference_pages(str(value)) for reference in str(value).split(): values = str(reference).split(';') if len(values) > 2: @@ -505,7 +507,7 @@ def check_cell_value( except EntityDoesNotExistError: values[0] = error_span(values[0]) checks.set_warning('invalid_reference_id', id_) - references.append(';'.join(values)) + references.append((';'.join(values)).replace('|', ' ')) value = ' '.join(references) case 'wkt' if value: try: diff --git a/sphinx/source/admin/import.rst b/sphinx/source/admin/import.rst index b6a1e2d42..0265ac428 100644 --- a/sphinx/source/admin/import.rst +++ b/sphinx/source/admin/import.rst @@ -122,6 +122,7 @@ References It is possible to link existing :doc:`/entity/reference` to imported entities. * :doc:`/entity/reference` ID and pages are separated with a semicolon (**;**), e.g. 1234;56-78 +* To link :doc:`/entity/reference` with multiple page numbers, wrap the numbers in quotation marks, e.g. 1234;"IV, 56-78" * To link :doc:`/entity/reference` without page number, just add the ID without semicolon (**;**) * You can enter multiple :doc:`/entity/reference` separated with a space, e.g. 1234;56-78 5678 * The ID of a :doc:`/entity/reference` can be looked up at the detail view of the entity From 423f85d62f3045bbc85e56a4af6fa595ef817056 Mon Sep 17 00:00:00 2001 From: Bernhard Koschicek-Krombholz Date: Tue, 15 Oct 2024 16:47:06 +0200 Subject: [PATCH 05/21] try to fix tests --- openatlas/models/imports.py | 28 +++++----------------------- openatlas/static/example.csv | 2 +- openatlas/views/imports.py | 11 ++--------- sphinx/source/admin/import.rst | 6 +++--- tests/invalid_2.csv | 2 +- tests/test_export_import.py | 1 - 6 files changed, 12 insertions(+), 38 deletions(-) diff --git a/openatlas/models/imports.py b/openatlas/models/imports.py index bdcbbbc14..457d57402 100644 --- a/openatlas/models/imports.py +++ b/openatlas/models/imports.py @@ -1,5 +1,6 @@ from __future__ import annotations +import re from collections import defaultdict from typing import Any, Optional @@ -161,16 +162,14 @@ def link_types(entity: Entity, row: dict[str, Any], class_: str) -> None: def link_references(entity: Entity, row: dict[str, Any], class_: str) -> None: if data := row.get('references'): - if '"' in str(data): - data = clean_reference_pages(str(data)) - for references in str(data).split(): + for references in clean_reference_pages(str(data)): reference = references.split(';') if len(reference) <= 2 and reference[0].isdigit(): try: ref_entity = ApiEntity.get_by_id(int(reference[0])) except EntityDoesNotExistError: continue - page = reference[1].replace('|', ' ') or None + page = reference[1] or None ref_entity.link('P67', entity, page) match_types = get_match_types() systems = list(set(i for i in row if i.startswith('reference_system_'))) @@ -218,22 +217,5 @@ def insert_gis(entity: Entity, row: dict[str, Any], project: Project) -> None: Gis.insert_wkt(entity, location, project, wkt_) -def clean_reference_pages(value: str) -> str: - new_string = "" - inside_quotes = False - current_part = "" - - for char in value: - if char == '"': - if inside_quotes: - modified_part = current_part.replace(' ', '|') - new_string += modified_part - inside_quotes = False - current_part = "" - else: - inside_quotes = True - elif inside_quotes: - current_part += char - else: - new_string += char - return new_string +def clean_reference_pages(value: str) -> list[str]: + return re.findall(r'\d+;.*?(?=\d+;|$)', value) diff --git a/openatlas/static/example.csv b/openatlas/static/example.csv index 874751eb0..91685d22c 100644 --- a/openatlas/static/example.csv +++ b/openatlas/static/example.csv @@ -1,4 +1,4 @@ id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,references,reference_system_wikidata,reference_system_geonames,administrative_unit,historical_place -place_1,Vienna,Wien;City of Vienna,Capital of Austria,1500-01-01,1500-12-31,It was a rainy day.,2045-01-01,2049-12-31,We'll see about that.,"POLYGON((16.1203 48.30671, 16.606275 48.30671, 16.606275 48.3154, 16.1203 48.3154, 16.1203 48.30671))",80 184895,128787;-13.56,117293;"IV, 23-45" 23235;"45 34",Q152419;close_match,2761369;exact_match,87,221630 +place_1,Vienna,Wien;City of Vienna,Capital of Austria,1500-01-01,1500-12-31,It was a rainy day.,2045-01-01,2049-12-31,We'll see about that.,"POLYGON((16.1203 48.30671, 16.606275 48.30671, 16.606275 48.3154, 16.1203 48.3154, 16.1203 48.30671))",80 184895,128787;-13.56,"117293;IV, 23-45 23235;45 34",Q152419;close_match,2761369;exact_match,87,221630 place_2,London,,,,,,,,,"POINT (-0.1290 51.5053)",,,,,,, place_3,Rom,,,,,,,,,"LINESTRING (12.458533781141528 41.922205268362234, 12.53062334955289 41.917606998887024, 12.52169797441624 41.888476931243254)",,,,,,, diff --git a/openatlas/views/imports.py b/openatlas/views/imports.py index 0ef2d8c48..08c06a2f6 100644 --- a/openatlas/views/imports.py +++ b/openatlas/views/imports.py @@ -50,7 +50,6 @@ _('invalid value type values') _('invalid coordinates') _('invalid OpenAtlas class') -_('invalid references') _('invalid reference id') _('empty names') _('empty ids') @@ -490,14 +489,8 @@ def check_cell_value( value = ' '.join(value_types) case 'references' if value: references = [] - if '"' in str(value): - value = clean_reference_pages(str(value)) - for reference in str(value).split(): + for reference in clean_reference_pages(str(value)): values = str(reference).split(';') - if len(values) > 2: - references.append(error_span(reference)) - checks.set_warning('invalid_references', id_) - continue if not values[0].isdigit(): values[0] = error_span(values[0]) checks.set_warning('invalid_reference_id', id_) @@ -507,7 +500,7 @@ def check_cell_value( except EntityDoesNotExistError: values[0] = error_span(values[0]) checks.set_warning('invalid_reference_id', id_) - references.append((';'.join(values)).replace('|', ' ')) + references.append(';'.join(values)) value = ' '.join(references) case 'wkt' if value: try: diff --git a/sphinx/source/admin/import.rst b/sphinx/source/admin/import.rst index 0265ac428..7570864e1 100644 --- a/sphinx/source/admin/import.rst +++ b/sphinx/source/admin/import.rst @@ -122,9 +122,9 @@ References It is possible to link existing :doc:`/entity/reference` to imported entities. * :doc:`/entity/reference` ID and pages are separated with a semicolon (**;**), e.g. 1234;56-78 -* To link :doc:`/entity/reference` with multiple page numbers, wrap the numbers in quotation marks, e.g. 1234;"IV, 56-78" -* To link :doc:`/entity/reference` without page number, just add the ID without semicolon (**;**) -* You can enter multiple :doc:`/entity/reference` separated with a space, e.g. 1234;56-78 5678 +* To link :doc:`/entity/reference` with multiple page numbers, wrap the whole cell in quotation marks, e.g. "1234;IV, 56-78" +* To link :doc:`/entity/reference` without page number, just add the ID semicolon (**;**) without additional information +* You can enter multiple :doc:`/entity/reference` separated with a space, e.g. 1234;56-78 5678; * The ID of a :doc:`/entity/reference` can be looked up at the detail view of the entity .. _WKT import: diff --git a/tests/invalid_2.csv b/tests/invalid_2.csv index d42077ae8..6fd6f4561 100644 --- a/tests/invalid_2.csv +++ b/tests/invalid_2.csv @@ -1,4 +1,4 @@ id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,references,reference_system_wikidata,reference_system_geon,administrative_unit,historical_place,not_existing_column -place_1,Vienna,Wien,Capital of Austria,not_a_date,NaT,It was a rainy day.,,2049-12-31,"We'll see about that.","MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))",666,666;12B34,666;213;41 12b 666;IV,123;away,juhhu;4545,777,888, +place_1,Vienna,Wien,Capital of Austria,not_a_date,NaT,It was a rainy day.,,2049-12-31,"We'll see about that.","MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))",666,666;12B34,666;213;41 12b 666b;IV,123;away,juhhu;4545,777,888, place_1,,,,,,,,,,"MULTILINESTRING ((BLA 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))",,,,,, place_1,Vienna,,,,,,,,,,,,,, diff --git a/tests/test_export_import.py b/tests/test_export_import.py index 2d6b8a95d..4bd79ebbf 100644 --- a/tests/test_export_import.py +++ b/tests/test_export_import.py @@ -114,7 +114,6 @@ def test_export(self) -> None: assert b'invalid value type ids' in rv.data assert b'invalid value type values' in rv.data assert b'invalid reference system' in rv.data - assert b'invalid references' in rv.data assert b'invalid reference id' in rv.data assert b'empty names' in rv.data assert b'double IDs in import' in rv.data From 42ff1c040f2dfd823ab819fd5c42d6ade88e8fca Mon Sep 17 00:00:00 2001 From: Bernhard Koschicek-Krombholz Date: Fri, 18 Oct 2024 12:09:02 +0200 Subject: [PATCH 06/21] changed regex to check the references --- openatlas/models/imports.py | 3 ++- sphinx/source/admin/import.rst | 2 +- tests/invalid_2.csv | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/openatlas/models/imports.py b/openatlas/models/imports.py index 457d57402..b40981ebf 100644 --- a/openatlas/models/imports.py +++ b/openatlas/models/imports.py @@ -218,4 +218,5 @@ def insert_gis(entity: Entity, row: dict[str, Any], project: Project) -> None: def clean_reference_pages(value: str) -> list[str]: - return re.findall(r'\d+;.*?(?=\d+;|$)', value) + matches = re.findall(r'([a-zA-Z\d]*;[^;]*?(?=[a-zA-Z\d]*;|$))', value) + return [match.strip() for match in matches] diff --git a/sphinx/source/admin/import.rst b/sphinx/source/admin/import.rst index 7570864e1..a61c52974 100644 --- a/sphinx/source/admin/import.rst +++ b/sphinx/source/admin/import.rst @@ -122,7 +122,7 @@ References It is possible to link existing :doc:`/entity/reference` to imported entities. * :doc:`/entity/reference` ID and pages are separated with a semicolon (**;**), e.g. 1234;56-78 -* To link :doc:`/entity/reference` with multiple page numbers, wrap the whole cell in quotation marks, e.g. "1234;IV, 56-78" +* To link :doc:`/entity/reference` with multiple page numbers, wrap the whole cell in quotation marks, e.g. "1234;IV, 56-78 542;34-23 66;" * To link :doc:`/entity/reference` without page number, just add the ID semicolon (**;**) without additional information * You can enter multiple :doc:`/entity/reference` separated with a space, e.g. 1234;56-78 5678; * The ID of a :doc:`/entity/reference` can be looked up at the detail view of the entity diff --git a/tests/invalid_2.csv b/tests/invalid_2.csv index 6fd6f4561..2886bd0ec 100644 --- a/tests/invalid_2.csv +++ b/tests/invalid_2.csv @@ -1,4 +1,4 @@ id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,references,reference_system_wikidata,reference_system_geon,administrative_unit,historical_place,not_existing_column -place_1,Vienna,Wien,Capital of Austria,not_a_date,NaT,It was a rainy day.,,2049-12-31,"We'll see about that.","MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))",666,666;12B34,666;213;41 12b 666b;IV,123;away,juhhu;4545,777,888, -place_1,,,,,,,,,,"MULTILINESTRING ((BLA 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))",,,,,, -place_1,Vienna,,,,,,,,,,,,,, +place_1,Vienna,Wien,Capital of Austria,not_a_date,NaT,It was a rainy day.,,2049-12-31,We'll see about that.,"MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))",666,666;12B34,“666b;213;41 12b 666;IV”,123;away,juhhu;4545,777,888, +place_1,,,,,,,,,,"MULTILINESTRING ((BLA 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))",,,,,,,, +place_1,Vienna,,,,,,,,,,,,,,,,, From 01e7fd38eb5689502749889ef96ed7001b4e91f0 Mon Sep 17 00:00:00 2001 From: NinaBrundke Date: Mon, 21 Oct 2024 13:50:18 +0200 Subject: [PATCH 07/21] Manual upddate - Admin --- sphinx/source/admin/api.rst | 13 +- sphinx/source/admin/arche.rst | 37 +-- sphinx/source/admin/content.rst | 12 +- sphinx/source/admin/data_integrity_checks.rst | 135 +++++----- sphinx/source/admin/execute_sql.rst | 34 ++- sphinx/source/admin/export.rst | 22 +- sphinx/source/admin/frontend.rst | 23 +- sphinx/source/admin/general.rst | 32 ++- sphinx/source/admin/iiif.rst | 12 +- sphinx/source/admin/import.rst | 238 +++++++++++------- sphinx/source/admin/mail.rst | 4 +- sphinx/source/admin/map.rst | 6 +- sphinx/source/admin/modules.rst | 5 +- sphinx/source/admin/user.rst | 21 +- sphinx/source/admin/vocabs.rst | 48 ++-- 15 files changed, 374 insertions(+), 268 deletions(-) diff --git a/sphinx/source/admin/api.rst b/sphinx/source/admin/api.rst index 994222691..5c00c6655 100644 --- a/sphinx/source/admin/api.rst +++ b/sphinx/source/admin/api.rst @@ -5,11 +5,14 @@ API Description: :doc:`/technical/api` -* **Public** (default=off). If you turn it on the API and linked files with a license can be accessed even without logging in. This might be useful if you want the data open anyway to allow other systems to use it. +* **Public** (default=off) -**Note**: The API and files linked to a license can still be requested from: - -- a browser, where a user is logged in -- if the IP of the request-computer is on the **IP Whitelist** + * If turned off the API and files with a license can still be accessed by + * A browser used b a logged in user + * If the IP of the request-computer is on the **IP Whitelist** + * If turned on the API and linked files with a + license can be accessed without being logged in. This might be useful + if you want to allow other systems to use your data without + restrictions. diff --git a/sphinx/source/admin/arche.rst b/sphinx/source/admin/arche.rst index 9f75cd60c..2984e3e56 100644 --- a/sphinx/source/admin/arche.rst +++ b/sphinx/source/admin/arche.rst @@ -3,50 +3,56 @@ ARCHE .. toctree:: -**Be aware** this feature is only usable for a specific dataset. +`ARCHE `_ (A Resource Centre for the +HumanitiEs) is a service aimed at offering stable and persistent hosting as +well as dissemination of digital research data and resources. -`ARCHE `_ (A Resource Centre for the HumanitiEs) is a service aimed at offering stable -and persistent hosting as well as dissemination of digital research data and resources. - -In order to import data from ARCHE to OpenAtlas changes to instance/production.py are needed (ask your OpenAtlas -administrator for further details): +In order to import data from ARCHE to OpenAtlas, changes to +instance/production.py are needed (ask your OpenAtlas administrator for +further details): .. code-block:: :caption: instance/production.py ARCHE = { 'id': 0, # Top collection of the project (acdh:TopCollection) - 'url': 'https://arche-curation.acdh-dev.oeaw.ac.at/', # Base URL to get data from + 'url': 'https://arche-curation.acdh-dev.oeaw.ac.at/', # Base URL to get + data from }} -The **ARCHE** button is displayed in the Admin/Data menu only if above data is provided. +The **ARCHE** button is displayed in the Admin/Data menu only if the +changes mentioned above are made. Click on the **ARCHE** button to get to the overview section. Overview -------- -Data provided in the production.py is displayed. If user belongs to the **manager** user group, a button called -**Fetch** is displayed. Click **Fetch** to fetch data from ARCHE. +Data provided in the production.py is displayed. If user is part of +the **manager** user group, the **Fetch** button is displayed. Click +**Fetch** to fetch data from ARCHE. Fetch ----- Data fetched from ARCHE are listed in a :doc:`/ui/table`. -Only data (based on the :doc:`/entity/artifact`), which was not imported is shown. +Only data (based on the :doc:`/entity/artifact`) that was not imported is +shown. Click on **Import ARCHE data** to import data. Data from ARCHE --------------- -All metadata is gathered from the EXIF endpoint of the first image in the "2_JPGs" collection. Additionally the -corresponded .png from "4_Orthophotos" is taken as reference file. +All metadata is gathered from the EXIF endpoint of the first image in the +"2_JPGs" collection. Additionally, the corresponding .png from +"4_Orthophotos" is taken as reference file. Automatically created entities ------------------------------ -All necessary new types, persons etc. will be automatically created or added during the import process. +All necessary new types, persons etc. will be automatically created or added +during the import process. .. image:: ARCHE_import_OpenAtlas.jpg :width: 700px @@ -60,7 +66,8 @@ All necessary new types, persons etc. will be automatically created or added dur :doc:`/entity/reference_system` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -New :doc:`/entity/reference_system` named **ARCHE** is created with data provided by instance/production.py +New :doc:`/entity/reference_system` named **ARCHE** is created with data +provided by instance/production.py :doc:`/entity/index` ^^^^^^^^^^^^^^^^^^^^ diff --git a/sphinx/source/admin/content.rst b/sphinx/source/admin/content.rst index 9af34c06b..80d6a6c6d 100644 --- a/sphinx/source/admin/content.rst +++ b/sphinx/source/admin/content.rst @@ -3,15 +3,15 @@ Content .. toctree:: -Displayed texts in available languages can be customized here: +Used to cutomise text in available languages: -* **Intro** - displayed at the top at the start page before logging in -* **Contact** - displayed at the contact site, e.g. contact information for +* **Intro** - displayed on top of the start page before log in +* **Contact** - displayed on contact site, e.g. contact information for the website maintainer -* **Legal notice** - displayed at the legal notice site, e.g. information +* **Legal notice** - displayed on the legal notice site, e.g. information about the institute -* **Citation example** - displayed under the form at insert/update of an - edition or a bibliography +* **Citation example** - displayed underneath the form fields of an + insert/update of an edition or a bibliography entry Links to **Contact** and **Legal notice** are available at the cogwheel icon diff --git a/sphinx/source/admin/data_integrity_checks.rst b/sphinx/source/admin/data_integrity_checks.rst index 71ebe91a7..e55cf5780 100644 --- a/sphinx/source/admin/data_integrity_checks.rst +++ b/sphinx/source/admin/data_integrity_checks.rst @@ -3,70 +3,79 @@ Data integrity checks .. toctree:: -The quality of data is very important to us. Although ultimately the data -responsibility lies with editors and project managers we take great care to -avoid entering of inconsistent data on a technical level, e.g. with the user -interface it is not possible to enter begin dates which are later than end -dates. - -Nevertheless mistakes can happen, not only on the application level but also -e.g. when importing data from other projects or deleting files outside of the -application. Because data integrity is important for the quality of research we -implemented functions to check possible inconsistencies which are described in -detail below. +OpenAtlas puts great emphasis on the data quality. Even if the +responsibility for the quality of the information entered ultimately lies +with the individual projects, avoidance of inconsistent on a technical level +are important during the development of the application. It is therefore not +possible e.g. to enter the start date of an event after the end date of the +same event + +Nevertheless mistakes happen, not only on the application level but also +when importing data from other projects or deleting files outside of the +application, etc. Therefore, functions to check possible inconsistencies were +implemented and are described in detail below. Orphans ------- Orphans ******* -In this tab entries like dates which are not linked are shown. They could be -artifacts from imports or bugs and can be deleted. If they seem to appear -regularly again (without imports or known bugs) please report that issue. +Here unlinked data are shown. These so called orphans could be artifacts +from imports or results of bugs and can be deleted. If orphans seem to appear +regularly (without data imports or known bugs) please report this issue to the +OpenAtlas team e.g. via the +`OpenAtlas redmine `_. + Entities without links ********************** -Entries shown have no relation to other entities. That could be ok but maybe -they are artifacts or were forgotten to link. +Entries shown have no relation to other entities. Of course that can be +part of the normal data set, but should be check if correct. An unlinked +entity could be artifacts of an import or were not linked by accident. Type **** -These types were created but have no sub types or associated data. Maybe they -originate from the first install or were never used. +The types listed here were created but have no sub types or associated data. +They might have been pre-installed before teams have started entering +information or were created and then never used. Missing files ************* -Here are listed file entities which have no corresponding file, most likely -because the file itself doesn't exist anymore. +File entities without a corresponding file are listed here. This is (most +likely) caused by the deletion of files from the dataset. Orphaned files ************** -Files that have no corresponding entity are listed here. +Files without a corresponding file entity are listed here. Orphaned IIIF files ******************* -IIIF files that have no corresponding entity are listed here. +IIIF files without a corresponding entity are listed here. Orphaned annotations ******************** -Annotations that are linked to an entity, but where the file and the entity -doesn't have a connection are listed here. There are three options to proceed: +Annotations that are linked to an entity, but file and entity themselves are +not linked are listed here. There are three options to proceed: -* *Relink entity*: Add a link between file and entity +* *Relink entity*: Adds a link between file and entity * *Remove entity*: Removes the entity from the annotation * *Delete annotation*: Deletes the whole annotation Orphaned subunits ***************** -Subunits that are missing a connection to the level above. E.g. a feature -without a connection to a place. +Subunits without a link to the level above, e.g. a feature +with no connection to a place. Circular dependencies ********************* -A check if an entity is linked to itself. This could happen e.g. if a person is -married to herself or a type has itself as super. It shouldn't be possible to -create circular dependencies within the application. Nevertheless it's a useful -check for e.g. if data is imported from other systems. +It can be checked if an entity is linked to itself. This could happen, for +example, if a person has been entered as is married to themself or a type +has itself as super. It shouldn't be possible to create circular +dependencies within the application but nevertheless it's useful to +check the database as this can happen through data imports or bugs. If you +find circular dependencies in your dataset regularly with a previous report +or known bugs, please report the issue e.g. via the +`OpenAtlas redmine `_. Dates ----- @@ -74,64 +83,68 @@ In this view various results of invalid or inconsistent dates are shown. Invalid dates ************* -Invalid date combinations are shown, e.g. begin dates which are -later than end dates. These issues should be fixed because otherwise the user +In this tab invalid date combinations are shown, for example dates of begins +That are later than end dates. These issues should be fixed, otherwise the user interface won't allow to update these entities. Invalid link dates ****************** -Like with "invalid dates" issues with these should be solved as soon as +Similar to "invalid dates", invalid link dates should be fixed as soon as possible. Invalid involvement dates ************************* -Incompatible dates at involvement are shown. E.g. a person participated at an -event longer than the event took place. +Incompatible dates for involvements are shown. Example: A person participated +in an event for longer than the event lasted. Invalid preceding dates *********************** -Incompatible dates for chained events are shown. E.g. a preceding event started -after the succeeding event. +Here, incompatible dates for chained events are listed. Example: A +preceding event starts after the succeeding event. Invalid sub dates ***************** -Incompatible dates for hierarchical events are shown. E.g. a sub event began -before the super event began. +This tab shows incompatible dates for hierarchical events. Example: A +sub event begins before the super event began. Check links ----------- -With this function every link will be checked for CIDOC validity. Depending on -the amount of data this could take some time. Data entered with the OpenAtlas -user interface should always be CIDOC valid but in case of e.g. imported -data this check should be used afterwards. If invalid links are found they -should be dealt with outside the application. +Here, every link will be checked for its CIDOC validity. Depending on the +amount of data this can take some time. While data entered by using the +OpenAtlas user interface should always be CIDOC conform, imported +data should be check after import. If invalid links are +found the problem should be resolved in the original data source. Check link duplicates --------------------- -There are actually two checks: +Two tests are combined: -The first one checks for duplicate links which are identically and can be -safely deleted when clicking the *Delete link duplicates* button. +The first test checks for duplicate links that are identically. These links +can be afterwards by clicking the *Delete link duplicates* button. -In case the first test found no duplicate links it will be checked for entities -connected multiple times two a type which is defined for single use. E.g. a -place has the type castle and city. In this case you would only see one in the -user interface and the other one would get deleted in case anybody updates the -entry. Here you have the option to look at these and remove the wrong ones -clicking on the **Remove** link beside the entries in the last column. +In case the first test found no duplicate links the dataset will be checked +for entities that were connected to a single use type multiple times. +Example: A place has been linked to types castle and city. Only one of the +types will be displayed in the user interface, the other one would be +deleted automatically if the entry is updated by anyone. +You are then given the option to have a look at the links and to remove the +wrong ones by clicking the **Remove** link next to the entries in the +last column. -Both checks shouldn't find anything wrong with data entered with the -application but nevertheless it could happen because of imports or unknown bugs. +By using the OpenAtlas interface link duplicates should be avoided +automatically but can happen due to data import or bugs. If this is a +reoccuring issue for your dataset, please report e.g. via the +`OpenAtlas redmine `_. Check similar names ------------------- -Here you can search for similar names. Depending on selection and data volume -this might take some time. +This test will search for similar entity names. Depending on selection +and data volume this might take some time. The following options are given: -* **Classes** - select the class which you want to search for similar names +* **Classes** - select the class you want to search for similar names * **Ratio** - select how similar the names should be, 100 is the default and - means absolute identical + means 100% identical The function uses the `fuzzywuzzy `_ -package is used which in turn uses the +package which uses the `Levenshtein Distance `_. diff --git a/sphinx/source/admin/execute_sql.rst b/sphinx/source/admin/execute_sql.rst index eed8d102d..be419e0b1 100644 --- a/sphinx/source/admin/execute_sql.rst +++ b/sphinx/source/admin/execute_sql.rst @@ -5,26 +5,38 @@ Execute SQL Admins can execute SQL direct to the database. -**Warning**: direct database manipulation can result in data loss and an unusable application! +**Warning**: direct database manipulation can result in data loss and an +unusable application! Preparation ----------- -* Backup the database (:doc:`export`) and download it in case you lose data or crash the application -* Create a local database with the backup and test the SQL on this local version first -* If there is no recent backup (maximal one day old), the SQL function is not available +* Backup the database (:doc:`export`) and download it in case you lose data + or crash the application +* Create a local database with the backup and test the SQL on the local + version first +* **Note**: If no recent backup is available (max. one day old), the SQL + function is not available either. Keep in mind ------------ -* It's a simple but very powerful feature. Unlike the rest of the application there are no safeguards to prevent e.g. total data loss and/or making the application unusable. -* If data is lost and/or the application crashes it can be fixed **only** with server and database access. Depending on the situation fixing the problem could take some time. -* A transaction (BEGIN, COMMIT) is automatically build around your statement -* Don't refresh the page (e.g pressing F5) because this will execute the statement again. -* You can use multiple statements (every statement has to be terminated with ";") but only the result of the last one will be displayed. +* This is a simple but powerful feature; unlike the rest of the + application there are no safeguards to prevent total data loss and/or + making the application unusable. +* If data is lost and/or the application crashes it can **only** be fixed + by a person with server and database access. So depending on the situation + this might take some time and effort. +* A transaction (BEGIN, COMMIT) is automatically build around your statement. +* Don't refresh the page (e.g pressing F5) as this will execute the + statement again. +* You can use multiple statements (every statement has to be terminated with + ";") but only the result of the last one will be displayed. Result ------ -After clicking on **Execute** the result of the last query is shown below depending on the statement: +After clicking on **Execute** the result of the last query is shown below +depending on the statement: * **SELECT** - the row count and the (not very readable) query result * **INSERT, UPDATE, DELETE** - the affected row count -* **Error** - there is nothing to worry about because the transaction executes the statement(s) only if there is no error. +* **Error** - there is nothing to worry about because the transaction + executes the statement(s) only if there is no error diff --git a/sphinx/source/admin/export.rst b/sphinx/source/admin/export.rst index 47792f20c..757461bbf 100644 --- a/sphinx/source/admin/export.rst +++ b/sphinx/source/admin/export.rst @@ -11,14 +11,14 @@ Export SQL * Be aware, especially when sharing, that **user data**, e.g. email addresses, are included in the database backups * SQL dumps are saved in the **files/export** folder -* A warning will be shown if the directory isn't writable +* A warning will appear if the directory isn't writable * File names begin with date and time e.g. 2018-08-23_1533_export.sql * Existing backups are shown in a list and can be downloaded or deleted Export SQL ********** A SQL dump will be created with **pg_dump** in a plain text format. The -resulting file could be used to fill an existing empty database, e.g. +resulting file can be used to fill an existing empty database, such as .. code-block:: @@ -27,9 +27,9 @@ resulting file could be used to fill an existing empty database, e.g. Export database dump ******************** -A SQL dump will be created with **pg_dump** in custom archiving format (-Fc). -With this format **pg_restore** can be used to restore the database regardless -of which operating system and line breaks are used e.g. +A SQL dump will be created with **pg_dump** in a custom archiving format (-Fc). +In this format **pg_restore** can be used to restore the database regardless +of used operating system and if line breaks are used or not .. code-block:: @@ -39,7 +39,7 @@ of which operating system and line breaks are used e.g. Export CSV ---------- When the **Export CSV** button is clicked, a **ZIP** file containing several -**CSV** files is downloaded. The CSV files are: +**CSV** files is downloaded. The ZIP file contains: * All entities divided by their OpenAtlas class * Links @@ -49,13 +49,13 @@ When the **Export CSV** button is clicked, a **ZIP** file containing several * Hierarchy of classes * Geometries -The file name of the **ZIP** file starts with the current date and time, for +The **ZIP** file's name starts with the current date and time, for example 2022-10-04_1610-export.zip. This process can take some time. Export JSON ----------- -When the **Export JSON** button is clicked, the download of a **JSON** file -begins. This file contains following keys: +When the **Export JSON** button is clicked, a **JSON** file is downloaded. +This file contains the following keys: * Entities * Links @@ -70,8 +70,8 @@ The file name starts with the current date and time, for example Export XML ---------- -When the **Export XML** button is clicked, the download of an -**XML** file begins. This file contains following tags: +When the **Export XML** button is clicked, an **XML** file is +downloaded. This file contains the following tags: * Entities * Links diff --git a/sphinx/source/admin/frontend.rst b/sphinx/source/admin/frontend.rst index 617c72180..23098a1e7 100644 --- a/sphinx/source/admin/frontend.rst +++ b/sphinx/source/admin/frontend.rst @@ -3,16 +3,19 @@ Frontend .. toctree:: -Many projects like to have a presentation site (frontend) to make the project -results accessible to a wider audience. In case there is already a running -version of a presentation site following values can be configured to create -links to it in the backend: +Many projects have a presentation site (frontend) to make the project +results accessible to a wider audience. If a running +version of a presentation site exists already, the following values can be +configured via Admin to create links the backend: * **Website URL** - address of the presentation site, e.g. - https://frontend-demo.openatlas.eu/. It will be displayed at the backend - overview. -* **Resolver URL** - in case entity details can be viewed using the id at - the end of an URL, a resolver URL can be specified. E.g. with the - resolver URL https://example.net/entities/ a link for the presentation site - view of an entity would be shown in the backend and would look like this: + https://frontend-demo.openatlas.eu/. A link to the website will be displayed + at the backend's overview page +* **Resolver URL** - if entity details can be viewed by using the id at + the end of an URL, a resolver URL can be specified. Example: with the + resolver URL https://example.net/entities/ a link for the presentation site + view of an entity would be shown in the backend and would look like this: https://example.net/entities/1234 + +Linking the presentation page via resolver URL to the backend allows you to +view entries and their changes in this frontend as well. diff --git a/sphinx/source/admin/general.rst b/sphinx/source/admin/general.rst index b4b744721..c3a8e5b12 100644 --- a/sphinx/source/admin/general.rst +++ b/sphinx/source/admin/general.rst @@ -3,17 +3,27 @@ General .. toctree:: -* **Site name** - the name of the site. Displayed in browser tabs and used in emails. -* **Default language** - user can change their preferred language in the :doc:`/tools/profile`. -* **Default table rows** - user can set their preferred value in the :doc:`/tools/profile` -* **Log level** - how much should be logged. For now only info, notice and error are used -* **Minimum jstree search** - minimum characters that have to be entered to filter trees e.g. types +* **Site name** - the name of the site. Displayed in browser tabs and used + in emails +* **Default language** - user can change their preferred language in the + :doc:`/tools/profile` +* **Default table rows** - user can set their preferred value in the + :doc:`/tools/profile` +* **Log level** - users can choose how much information will be logged. At + the moment only info, notice, and error are used +* **Minimum jstree search** - users can choose a minimum count of characters + that have to be entered to filter trees such es types, etc. Authentication -------------- -* **Random password length** - length of generated passwords at password reset or user creation -* **Minimum password length** - minimum length required -* **Reset confirm hours** - how long a requested password reset code is valid -* **Failed logins** - how often it could be tried to login with a specific username -* **Failed login forget minutes** - minutes to wait after failed logins are exceeded -* **Image processing** - if activated preview images for detail and table views are generated +* **Random password length** - choose the length of an automatically generated + passwords at a password reset or upon user creation +* **Minimum password length** - minimum length required for a password +* **Reset confirm hours** -choose how long a requested password reset code is + valid for +* **Failed logins** - choose how often a login attempt is allowed with a + specific username +* **Failed login forget minutes** - choose how many minutes a user has to + wait after the chosen number of failed logins were exceeded +* **Image processing** - if activated, preview images for detail and table + views are generated diff --git a/sphinx/source/admin/iiif.rst b/sphinx/source/admin/iiif.rst index c2682dea3..259d4931d 100644 --- a/sphinx/source/admin/iiif.rst +++ b/sphinx/source/admin/iiif.rst @@ -11,19 +11,19 @@ high-quality, attributed digital objects online at scale. Once installed **Be aware that** * IIIF is **optional** for an OpenAtlas installation -* Enabling it can **expose** used files to the public (without login) +* Enabling IIIF can **expose** used files to the public (without login) **Configuration** * **IIIF** - Select this checkbox to enable IIIF * **URL** - Set the complete URL to the Image API Server, e.g. **https://yourserver.eu/iiif/** -* **Version** - The manifest version provided by OpenAtlas. Currently only - version 2 is available. +* **Version** - The manifest version provided by OpenAtlas, currently, only + version 2 is available * **Path** - Set the absolute path to the IIIF image drop zone which corresponds with the Image API Server folder, e.g. **/var/www/iipsrv/** if you followed the default OpenAtlas installation. Be aware that this folder - has to be accessible (write and execute) for the webserver. + has to be accessible (write and execute) for the webserver * **Conversion** - Controls if images get converted into pyramid-TIFFs * **none** - no conversion @@ -31,8 +31,8 @@ high-quality, attributed digital objects online at scale. Once installed * **jpeg** - much smaller files size but not lossless, e.g. loss of transparency -In case you are running multiple OpenAtlas instances you should create a sub -directory for every instance at **/var/www/iipsrv/** and also add these to +In case you are running multiple OpenAtlas instances, you should create a sub +directory for every instance at **/var/www/iipsrv/** and add these to **URL** and **Path** accordingly. These formats have been successfully tested with OpenAtlas: diff --git a/sphinx/source/admin/import.rst b/sphinx/source/admin/import.rst index a61c52974..758a7441b 100644 --- a/sphinx/source/admin/import.rst +++ b/sphinx/source/admin/import.rst @@ -3,9 +3,10 @@ Import .. toctree:: -Import is available for admins and managers and offers functionality to import data -from `CSV `_ files. -Currently lists can be imported containing: +Import settings are available for admins and managers and offer functionality +to import data directly from +`CSV `_ files. +Lists containing the following fields can be imported currently: * Name * Alias @@ -21,122 +22,163 @@ Currently lists can be imported containing: * origin_id * Place hierarchy -Preparations ------------- -Automatic imports can be dangerous for data integrity and it may be very time consuming to reverse them so we strongly advise: +Preparation +----------- +Automatic imports cause problems regarding data integrity, so proceed with +caution. Fixing such problems can be time consuming, so we strongly advise +you to: -* SQL backups **before** import, an existing backup not older than a day is enforced +* Make an SQL backups **before** the import of any data; an existing backup + not older than a day is enforced * Use the preview (enabled by default) and check if the data looks alright -The import operation is encapsulated in a transaction, meaning if there is an error in the script, -nothing will be imported. +The import operation is encapsulated in a transaction. So if there is an +error in the script, nothing will be imported. **The file:** -* Take a look at the :download:`example.csv` or :download:`example_place_hierarchy.csv` -* Make sure the extension is spelled correctly in lower case e.g. my_data.csv -* In the first row should be the header names -* Each following row is one data set. Values are separated by commas -* Text can be enclosed in double quotes (**"**), especially if the contain commas - -Projects --------- -To retrace imported entities they have to be associated with a project. If there is none (or not -the right one) available, you'll have to create a new one. The name and description can be updated +* Take a look at the :download:`example.csv` or + :download:`example_place_hierarchy.csv` +* Make sure the file extension (.csv) is spelled correctly in lower case e.g. + my_data.csv +* Header names are found in the first row of the table +* Each following row contains one data set; values are separated by commas +* Text should be enclosed in double quotes (**"**), especially if they contain + commas + +Project +------- +To find imported entities after the import, they have to be associated with a +project. If no project is available (or not the right one) you have +to create a new one. Name and description of said project can be updated later. Import class ------------ -Only one class can be imported at a time, so you have to choose one of the available classes. +Only one class can be imported at a time, so you have to choose one of the +available classes. Possible import fields ---------------------- -The header can contain the following titles. Columns with other titles won't get imported but shown as -an error message. +Column headers can contain the following titles. Other titles won't be +imported and an error message will be displayed -* **name** - required, an error will be displayed if the header is missing. A warning will be displayed, if names in data rows are missing and these won't get imported. -* **alias** - only available for person, group and place, see :ref:`Alias import` +* **name** - required, an error will be displayed if name; the data will not + get imported if a name is missing +* **alias** - only available for person, group and place, see + :ref:`Alias import` * **description** - a description can be provided -* **origin_id** - It has to be **unique per project** so if you have multiple like a person and place with id = 1 you can prefix them in the document e.g. person_1, place_1 before importing them +* **origin_id** - this field has to be **unique per project**; if you have + same IDs like a person and place with id = 1, you can prefix them in the + document e.g. person_1, place_1 before importing * **begin_from** - used for dates, see :ref:`Dates import` * **begin_to** - used for dates, see :ref:`Dates import` * **end_from** - used for dates, see :ref:`Dates import` * **end_to** - used for dates, see :ref:`Dates import` -* **type_ids** - used to link to types, see :ref:`Types import` -* **value_types** - used to link to a value type, see :ref:`Value types import` -* **references** - used to link existing references, see :ref:`References import` +* **type_ids** - used for linking to a type, see :ref:`Types import` +* **value_types** - used for linking to a value type, see :ref:`Value types + import` +* **references** - used for linking data to already existing references in + the database, see :ref:`References import` * **wkt** - only available for places and artifacts, see :ref:`WKT import` -* **reference_system_*** - used to link existing external reference systems, see :ref:`Reference systems import` -* **administrative_unit** - only available for places, id of existing administrative unit -* **historical_place** - only available for places, id of existing historical place -* **parent_id** - only available for place, id of a super unit in a place hierarchy, see :ref:`Place hierarchy import` -* **openatlas_parent_id** - only available for place, id of a super unit existing in OpenAtlas, see :ref:`Place hierarchy import` -* **openatlas_class** - only available for place and only used with **parent_id**, see :ref:`Place hierarchy import` +* **reference_system_*** - used for linking data to already existing external + reference systems in the database, see :ref:`Reference systems import` +* **administrative_unit** - only available for places, ID of existing + administrative unit +* **historical_place** - only available for places, ID of existing + historical place +* **parent_id** - only available for place, ID of a super unit in a place + hierarchy, see :ref:`Place hierarchy import` +* **openatlas_parent_id** - only available for place, ID of a super unit + existing in OpenAtlas, see :ref:`Place hierarchy import` +* **openatlas_class** - only available for place and only used with + **parent_id**, see :ref:`Place hierarchy import` .. _Alias import: Alias +++++ -:doc:`/ui/alias` can be entered as string. Multiple aliases can be separated with semicolon (**;**). -If an :doc:`/ui/alias` contains a comma (**,**) please surround the whole filed with double quotes(**"**) +:doc:`/ui/alias` can be entered as string. Multiple aliases can be separated +by semicolon (;). If an :doc:`/ui/alias` contains a comma (,) please +surround the whole string with double quotes(**"**). .. _Dates import: Dates +++++ -Dates can be entered in the format **YYYY-MM-DD** in the fields **begin_from** and **end_from**. -You can also use time spans in combinations with the fields **begin_to** and **end_to**, -see: :doc:`/ui/date` - -* If the date format is incorrect, they will be displayed in red and won't be imported -* Missing values for time spans will be discarded silently, e.g. a valid value in **begin_to**, but an empty value in **begin_from** -* There are no advanced checks between dates, e.g. end dates can be before begin dates. You should check them after the import at :doc:`/admin/data_integrity_checks` +Dates can be entered in the format **YYYY-MM-DD**. Fill out the **begin_from** +and **end_from** field for a known timeframe. For a timespan you can use +**begin_to** and **end_to** in combination with **begin_from** +and **end_from**. For more information see: :doc:`/ui/date`. + +Keep in mind: + +* if the date format is incorrect, it will be displayed in red and won't be + imported +* if the required fields are missing data (**begin_from** + and/or **end_from**), values entered in the other fields (**begin_to** and + **end_to**) will be lost without further warning +* There are no advanced checks for dates, so end dates can start before + begin dates. Check validity after the importing process; for more + information see :doc:`/admin/data_integrity_checks` .. _Types import: Types +++++ -It is possible to link entities to :doc:`/entity/type` at the import which can be very useful e.g. if you have -a custom type **Case studies** to link them all in one go. +It is possible to link entities to one or multiple :doc:`/entity/type`. This +can be useful for example when you use a custom type **Case studies** you +can link all of the imported data to this. -* :doc:`/entity/type` ids can be entered at the column **type_ids** -* You can enter multiple separated with a space -* The id of a :doc:`/entity/type` can be looked up at the detail view of a :doc:`/entity/type` +* :doc:`/entity/type` IDs can be entered in the column **type_ids** +* you can enter multiple IDs, separated by a space +* the ID of a :doc:`/entity/type` can be found at the detail view of the + specific :doc:`/entity/type` in your OpenAtlas instance .. _Value types import: Value types +++++++++++ -It is possible to link entities to value :doc:`/entity/type` at the import. +It is possible to link entities to one or multiple value :doc:`/entity/type` +when importing. -* Value :doc:`/entity/type` can be entered at the column **value_types** -* Type id and value are separated with a semicolon (**;**), e.g. 1234;-13.65 -* Value :doc:`/entity/type` need always a value -* You can enter multiple separated with a space -* The id of a value :doc:`/entity/type` can be looked up at the detail view of a value :doc:`/entity/type` +* a Value :doc:`/entity/type` can be entered via the **value_types** column +* type ID and corresponding value are separated by a semicolon (**;**), e.g. + 1234;-13.65 +* for each value :doc:`/entity/type` a value is required +* multiple value type-value pairs are separated by a space +* The ID of a value :doc:`/entity/type` can be found at the detail view of a + specific value :doc:`/entity/type` in your OpenAtlas instance .. _References import: References ++++++++++ -It is possible to link existing :doc:`/entity/reference` to imported entities. - -* :doc:`/entity/reference` ID and pages are separated with a semicolon (**;**), e.g. 1234;56-78 -* To link :doc:`/entity/reference` with multiple page numbers, wrap the whole cell in quotation marks, e.g. "1234;IV, 56-78 542;34-23 66;" -* To link :doc:`/entity/reference` without page number, just add the ID semicolon (**;**) without additional information -* You can enter multiple :doc:`/entity/reference` separated with a space, e.g. 1234;56-78 5678; -* The ID of a :doc:`/entity/reference` can be looked up at the detail view of the entity +The imported data can be linked to an already existing +:doc:`/entity/reference`. + +* :doc:`/entity/reference` ID and pages are separated by a semicolon + (**;**), e.g. 1234;56-78 +* to link a :doc:`/entity/reference` with multiple page numbers, wrap the + whole cell in quotation marks, e.g. "1234;IV, 56-78 542;34-23 66;" +* to link a :doc:`/entity/reference` without page numbers, just add the ID + and a semicolon (**;**) without further information +* enter multiple :doc:`/entity/reference`s separated by a space, e.g. 1234; + 56-78 5678; +* the ID of each :doc:`/entity/reference` can be found at the detail view of + said reference in your OpenAtlas instance .. _WKT import: WKT coordinates +++++++++++++++ -For places and artifact (multi)point, (multi)polygon, (multi)linestring coordinates or -GeometricCollection can be imported. Keep in mind to use -the `WGS84 `_ geodetic system (EPSG 4326). +For places and artifact (multi)point, (multi)polygon, and (multi)linestring +coordinates or GeometricCollection can be imported. Keep in mind to use +the `WGS84 `_ +geodetic system (EPSG 4326). Coordinates will be imported as `WKT `_. -It is only possible to import one geometry for each entry. Since the WKT format uses commas (**,**), -surround the coordinates with double quotes (**"**) +It is only possible to import one geometry for each entry. Since the WKT +format uses commas, surround tall coordinates with double quotes (") Example: "LINESTRING (12.458533781141528 41.922205268362234, 12.53062334955289 41.917606998887024, 12.52169797441624 41.888476931243254)" @@ -146,13 +188,13 @@ Example: External reference systems ++++++++++++++++++++++++++ It is possible to link the imported entity to an existing :doc:`/entity/reference_system`. -In this case, the header has to be named **reference_system_*** with the *name* of the -external :doc:`/entity/reference_system` appended, e.g. **reference_system_wikidata**. -If spaces occur in the name, please substitute them with underscore (**_**), e.g. -**reference_system_getty_aat**. - -The entry consist of two values, separated by a semicolon (**;**). The first value is -the identifier, e.g. Q54123, the second value is the match type (**close_match** or **exact_match**) +Named the coulmn **reference_system_*** with the *name* of the external +:doc:`/entity/reference_system` appended, e.g. **reference_system_wikidata**. +If spaces occur in the name, please substitute them with underscore (_), +e.g. **reference_system_getty_aat**. +Each entry consist of two values, separated by a semicolon (;). The first +value is the identifier, e.g. Q54123, the second value is the match type +(**close_match** or **exact_match**) Example: Q54123;close_match @@ -160,33 +202,43 @@ Example: .. _Place hierarchy import: Place hierarchy -+++++++++++++++++++++++++++++ -The **parent_id** or **openatlas_parent_id** is used to generate a :doc:`/entity/place` hierarchy together ++++++++++++++++ +Use the **parent_id** or **openatlas_parent_id** to generate a +:doc:`/entity/place` hierarchy together with :doc:`/entity/feature`, :doc:`/entity/stratigraphic_unit`, :doc:`/entity/artifact`, and :doc:`/entity/human_remains`. -The **parent_id** has to be an **origin_id** of a row in the **current** import file. -The **openatlas_parent_id** has to be an **existing** OpenAtlas entity ID with the correct class. -To declare, which entry has a specific class, the **openatlas_class** column is used. -Here the following classes can be entered: :doc:`/entity/place`, :doc:`/entity/feature`, -:doc:`/entity/stratigraphic_unit`, :doc:`/entity/artifact`, and -:doc:`/entity/human_remains`. This is case-insensitive. +The **parent_id** has to be an **origin_id** of a row in the **current** +import file. +The **openatlas_parent_id** has to be an **existing** OpenAtlas entity ID +with the correct class. +To declare, which entry has a specific class, the **openatlas_class** column +is used. Here the following classes can be entered: :doc:`/entity/place`, +:doc:`/entity/feature`, :doc:`/entity/stratigraphic_unit`, +:doc:`/entity/artifact`, and :doc:`/entity/human_remains`. This is +case-insensitive. For an example, please see: :download:`example_place_hierarchy.csv` -For questions about the correct place hierarchy structure, please see the -**archaeological sub units** at the OpenAtlas :doc:`/model/index`. +For questions about the correct place hierarchy structure, please have a +look at **archaeological sub units** at the OpenAtlas :doc:`/model/index`. Import options -------------- -* **File** - select the file you'll want to import -* **Preview** - if this option is selected, nothing will be imported and you see a preview -* **Check for duplicates** - if selected, the chosen class e.g. person will be searched for already existing names. The search is not case-sensitive e.g. "King Arthur" would be found even it is spelled "KiNg ArThUr". If duplicates are found a warning is printed but this doesn't stop the import so check it before with the preview. +* **File** - select a file you'll want to import +* **Preview** - if this option is selected, nothing will be imported and you + see a preview +* **Check for duplicates** - if selected, the chosen class e.g. person will + be searched for already existing names. The search is not case-sensitive + e.g. "King Arthur" would be found even it is spelled "KiNg ArThUr". If + duplicates are found, a warning is printed but doesn't stop the import After the import ---------------- -When the import went through, you'll see a summary which data was imported (like the preview). -Also, you can browse the projects to see which imported entities are associated with them. -If you enabled the advanced layout you can also see in the detail view of an entity from which -project it was imported, which user did the import and the origin_id value. - -Although the script makes a lot of validation checks it's always a good idea to run -:doc:`/admin/data_integrity_checks` after each import. +When the import went through, a summary which data was imported is shown. +You can also browse the projects to see which imported entities are associated +with them. +If advanced layout is enabled, the detail view of an entity shows from which +project the entity was imported, which user did the import and the +origin_id value. + +**It is always a good idea to run :doc:`/admin/data_integrity_checks` after +each import.** diff --git a/sphinx/source/admin/mail.rst b/sphinx/source/admin/mail.rst index c2b2cb4c4..034478aab 100644 --- a/sphinx/source/admin/mail.rst +++ b/sphinx/source/admin/mail.rst @@ -3,10 +3,10 @@ Mail .. toctree:: -After changes are made use the test function to ensure that users can reset +After changes are made, use the test function to ensure that users can reset their passwords. -* **Email** - if not checked all email functions are disabled +* **Email** - if not checked, all email functions are disabled * **Username** - leave empty to send mails without login or set a password (MAIL_PASSWORD) in instance/production.py to send mails with authentication * **Host** - e.g. smtp.example.net diff --git a/sphinx/source/admin/map.rst b/sphinx/source/admin/map.rst index 128035359..ba7e92ccd 100644 --- a/sphinx/source/admin/map.rst +++ b/sphinx/source/admin/map.rst @@ -3,9 +3,11 @@ Map .. toctree:: -* **Default map zoom** - define the lowest zoom level to include all features on a :doc:`/tools/map` view. +* **Default map zoom** - define the lowest zoom level to include all + features on a :doc:`/tools/map` view. * **Max map zoom** - adjust how far you can zoom into a :doc:`/tools/map` -* **DisableClusteringAtZoom** - at which zoom level clustering should be disabled +* **DisableClusteringAtZoom** - defines at which zoom level clustering is + disabled * **MaxClusterRadius** - the maximal range of a cluster * **GeoNames username** - used to access GeoNames functions * **GeoNames URL** - used to access GeoNames functions diff --git a/sphinx/source/admin/modules.rst b/sphinx/source/admin/modules.rst index a8deb5b0c..a630df117 100644 --- a/sphinx/source/admin/modules.rst +++ b/sphinx/source/admin/modules.rst @@ -3,5 +3,6 @@ Modules .. toctree:: -Here you can set default values of modules for new users. Users can overwrite these in their -profile. Descriptions of modules are available at the :doc:`/tools/profile` page. +Here you can set default values of modules for new users. Users can +adjust these via settings in their own profile. Descriptions of modules are +available at the :doc:`/tools/profile` page. diff --git a/sphinx/source/admin/user.rst b/sphinx/source/admin/user.rst index 1ac5dd184..c49877675 100644 --- a/sphinx/source/admin/user.rst +++ b/sphinx/source/admin/user.rst @@ -3,20 +3,25 @@ User .. toctree:: -In the overview users with group, email, created/last login date and newsletter subscription are -displayed. When viewing a user you can click on *Activity* to browse entity inserts, updates and -deletes of this user. +In the overview users and information on their group, email, created/last +login date, and newsletter subscription are displayed. When viewing a user +you can click on *Activity* to browse entity inserts, updates, and deletes of +this user. -User can be added by admins or manager and a registration mail with account details can be sent by -the system if **Send account information** is checked. +Users can be added by admins or manager and a registration mail with account +details can be sent by the system if **Send account information** is checked. Form fields ----------- -* **Active** - if not checked the user cannot log in anymore. Keeping inactive users can be useful to keep associated information e.g. about created and modified entities. +* **Active** - if not checked the user cannot log in anymore. Keeping + inactive users saved in the system can be useful to keep associated + information e.g. about created and modified entities * **Group** - defines the access level of a user, see table below -* **Username** - required to login and displayed in advanced view of created/modified entries +* **Username** - required to login and displayed in advanced view of + created/modified entries * **Email** - required for e.g. resetting the password -* **Full name** - optional but makes it easier for other to be identified. Can be edited in :doc:`/tools/profile`. +* **Full name** - optional but makes it easier for other to be identified. + Can be edited in :doc:`/tools/profile`. * **Info** - a free text field for additional information Groups diff --git a/sphinx/source/admin/vocabs.rst b/sphinx/source/admin/vocabs.rst index 5ec3f113f..3578e975b 100644 --- a/sphinx/source/admin/vocabs.rst +++ b/sphinx/source/admin/vocabs.rst @@ -3,50 +3,48 @@ Vocabs .. toctree:: -Available for admins and managers +Available for admins and managers only. -The Vocabs import enables the import of controlled vocabularies -as custom types from a `Skosmos `_ service. +A Vocabs import allows for an import of a controlled vocabularies as +OpenAtlas custom types from a `Skosmos `_ service. -As default the `ACDH-CH Skosmos `_ service is selected. +As default the `ACDH-CH Skosmos `_ service +is selected. Edit ____ -**Base URL** - Enter a valid `Skosmos `_ service URL. -Please provide the trailing slash. +* **Base URL** - Enter a valid `Skosmos `_ service URL. + Please provide the trailing slash +* **Endpoint** - Enter a valid REST API endpoint +* **User** - Enter a username, if the service needs an authentication -**Endpoint** - Enter the valid REST API endpoint. - -**User** - Enter the username, if the service needs an authentication. - -If an authentication is needed the password has to be provided within the instance/production.py +If an authentication is needed the password has to be provided within the +instance/production.py ``VOCABS_PW = ''`` Show vocabularies _________________ -Here all available vocabularies of the given service URL are displayed as table. The name is -linked to the vocabulary at the provided service. - -You can choose to import the *hierarchy* or the *collection* of a vocabulary. For the difference please confer -https://www.w3.org/TR/skos-primer/. +All available vocabularies of the given service URL are displayed as table. +Each name is linked to the vocabulary at the provided service. +You can choose to import the *hierarchy* or the *collection* of a vocabulary. +For the difference please confer https://www.w3.org/TR/skos-primer/. To import a vocabulary, click either on **hierarchy** or **groups**. Import ______ -**Top concepts** - Select top concepts to import them as custom hierarchy. Each child concept will -be imported as type in the conceptual order. - -**Classes** - Choose to which classes the new types will be added to e.g. Artifact or Place. - -**Multiple** - Decide if the type is single or multiple choice - -**Language** - Decide what language is used. If a concept name is not available in the wanted language, -the preferred language of the vocabulary will be taken. +* **Top concepts** - Select top concepts to import as custom hierarchy. + Each child concept will be imported as type in the conceptual order. +* **Classes** - Choose to which classes the new types will be added to, e.g. + Artifact or Place. +* **Multiple** - Decide if the type is single or multiple choice +* **Language** - Decide what language is used. If a concept name is not + available in the choosen language, the preferred language of the vocabulary + will be used From d2d15e37ab16949be29a1715ad68e6e7b38e8fda Mon Sep 17 00:00:00 2001 From: Alexander Watzinger Date: Mon, 21 Oct 2024 13:57:34 +0200 Subject: [PATCH 08/21] Update manual --- openatlas/static/manual/.buildinfo | 2 +- .../static/manual/.doctrees/admin/api.doctree | Bin 5225 -> 7123 bytes .../manual/.doctrees/admin/arche.doctree | Bin 27329 -> 27023 bytes .../manual/.doctrees/admin/content.doctree | Bin 5629 -> 5630 bytes .../admin/data_integrity_checks.doctree | Bin 21965 -> 24968 bytes .../.doctrees/admin/execute_sql.doctree | Bin 9760 -> 10624 bytes .../manual/.doctrees/admin/export.doctree | Bin 15867 -> 15843 bytes .../manual/.doctrees/admin/frontend.doctree | Bin 5780 -> 6201 bytes .../manual/.doctrees/admin/general.doctree | Bin 8651 -> 9931 bytes .../manual/.doctrees/admin/iiif.doctree | Bin 12671 -> 12666 bytes .../manual/.doctrees/admin/import.doctree | Bin 64309 -> 67734 bytes .../manual/.doctrees/admin/mail.doctree | Bin 6079 -> 6083 bytes .../static/manual/.doctrees/admin/map.doctree | Bin 5786 -> 5974 bytes .../manual/.doctrees/admin/modules.doctree | Bin 3476 -> 3504 bytes .../manual/.doctrees/admin/user.doctree | Bin 16984 -> 17459 bytes .../manual/.doctrees/admin/vocabs.doctree | Bin 10408 -> 11511 bytes .../manual/.doctrees/environment.pickle | Bin 176613 -> 177971 bytes .../manual/.doctrees/technical/api.doctree | Bin 42012 -> 42114 bytes .../manual/_static/documentation_options.js | 2 +- openatlas/static/manual/admin/api.html | 31 ++- openatlas/static/manual/admin/arche.html | 40 +-- openatlas/static/manual/admin/content.html | 16 +- .../manual/admin/data_integrity_checks.html | 136 ++++++----- .../static/manual/admin/execute_sql.html | 38 ++- openatlas/static/manual/admin/export.html | 26 +- openatlas/static/manual/admin/frontend.html | 26 +- openatlas/static/manual/admin/general.html | 36 ++- openatlas/static/manual/admin/iiif.html | 16 +- openatlas/static/manual/admin/import.html | 228 +++++++++++------- openatlas/static/manual/admin/index.html | 8 +- openatlas/static/manual/admin/mail.html | 8 +- openatlas/static/manual/admin/map.html | 10 +- openatlas/static/manual/admin/modules.html | 9 +- openatlas/static/manual/admin/user.html | 25 +- openatlas/static/manual/admin/vocabs.html | 50 ++-- openatlas/static/manual/entity/actor.html | 4 +- openatlas/static/manual/entity/artifact.html | 4 +- openatlas/static/manual/entity/event.html | 4 +- openatlas/static/manual/entity/feature.html | 4 +- openatlas/static/manual/entity/file.html | 4 +- .../static/manual/entity/human_remains.html | 4 +- openatlas/static/manual/entity/index.html | 4 +- .../static/manual/entity/navigation.html | 4 +- openatlas/static/manual/entity/place.html | 4 +- openatlas/static/manual/entity/reference.html | 4 +- .../manual/entity/reference_system.html | 4 +- openatlas/static/manual/entity/source.html | 4 +- .../manual/entity/stratigraphic_unit.html | 4 +- openatlas/static/manual/entity/type.html | 4 +- .../manual/examples/archaeological_data.html | 4 +- .../static/manual/examples/artifacts.html | 4 +- openatlas/static/manual/examples/index.html | 4 +- openatlas/static/manual/examples/journey.html | 4 +- openatlas/static/manual/examples/letters.html | 4 +- .../static/manual/examples/move_event.html | 4 +- openatlas/static/manual/examples/places.html | 4 +- .../static/manual/examples/profession.html | 4 +- .../manual/examples/reference_systems.html | 4 +- .../static/manual/examples/time_spans.html | 4 +- openatlas/static/manual/examples/types.html | 4 +- openatlas/static/manual/faq.html | 4 +- openatlas/static/manual/features.html | 4 +- openatlas/static/manual/index.html | 4 +- openatlas/static/manual/model/cidoc_crm.html | 4 +- openatlas/static/manual/model/index.html | 4 +- .../static/manual/model/link_checker.html | 4 +- .../manual/model/openatlas_classes.html | 4 +- .../manual/model/openatlas_shortcuts.html | 4 +- openatlas/static/manual/model/references.html | 4 +- openatlas/static/manual/objects.inv | Bin 1500 -> 1500 bytes openatlas/static/manual/overview.html | 4 +- openatlas/static/manual/search.html | 4 +- openatlas/static/manual/searchindex.js | 2 +- openatlas/static/manual/technical/api.html | 8 +- .../technical/application_structure.html | 4 +- .../manual/technical/database_structure.html | 4 +- .../tools/anthropological_analyses.html | 4 +- .../static/manual/tools/image_annotation.html | 4 +- openatlas/static/manual/tools/index.html | 4 +- openatlas/static/manual/tools/map.html | 4 +- openatlas/static/manual/tools/network.html | 4 +- openatlas/static/manual/tools/notes.html | 4 +- openatlas/static/manual/tools/profile.html | 4 +- .../manual/tools/radiocarbon_dating.html | 4 +- openatlas/static/manual/tools/search.html | 4 +- .../manual/troubleshooting/display.html | 4 +- .../manual/troubleshooting/error_codes.html | 4 +- .../static/manual/troubleshooting/index.html | 4 +- .../static/manual/troubleshooting/login.html | 4 +- openatlas/static/manual/ui/alias.html | 4 +- openatlas/static/manual/ui/date.html | 4 +- openatlas/static/manual/ui/description.html | 4 +- openatlas/static/manual/ui/form.html | 4 +- openatlas/static/manual/ui/menu.html | 4 +- openatlas/static/manual/ui/name.html | 4 +- openatlas/static/manual/ui/table.html | 4 +- sphinx/source/admin/import.rst | 2 +- 97 files changed, 540 insertions(+), 411 deletions(-) diff --git a/openatlas/static/manual/.buildinfo b/openatlas/static/manual/.buildinfo index 57e117942..280be436d 100644 --- a/openatlas/static/manual/.buildinfo +++ b/openatlas/static/manual/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 1f19e91a489895326c4c29410c95ac74 +config: 3cd6e480b825a2d6c550f9663f92431f tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/openatlas/static/manual/.doctrees/admin/api.doctree b/openatlas/static/manual/.doctrees/admin/api.doctree index 8156e26d4636178149e6fc74caec509d6f5ef46d..e3fc44d884961a54cdeff8dc38de47d704c06365 100644 GIT binary patch delta 2132 zcmb`I&rcIU6vr)gyX_V%MZ%91VThWv1<_ytQPDJnV524`8pDM&+jiU8wcVBOu7ra@ z4kQp)NtpTvc=RUpKthZ$o;-LkA;c?*Cp~!d?3?bg{Yfd&9=1Dg-n=*8&%8JLGq^Xw zykOpZ32ZTYPG;_%W{YD2XSr1zpjEJjov}oLd2yjTz1y&9GU5kig>SEz3peIjK6zZtCRhs>sdPCs)f2 zuOF(%E|cTyLxb_YQ8h)5BGDWNn}R=FbAGdp@{ZNZTMU7_jD{;w-Ic3(vupzRBZ+aN z*Et-(yLudN+ZYnfC@Se$HaF9N>)^4iW`?jU8t>Di0ewxZT;*&*-$Bs0V~-rTQ0FU< z^$lc|PIt;GLw`qAHshu>(@tVu&Ory`j^E_1ceVxpfso-%)(PXRGsv_-)L%3{Q;ZL` zK9Y3zGOb|$O6_f1_#7U_{dcKl7v@nP_1vl0$!Gh#X&1C`#U8kE(jKVlfaQ7}P^bPq zh7Ya?Q5NZC63d9HR(2zpJpngHXO&M()P!uAqw&GkfE1ZtyyObo=itbFwrBEWN~&~B z*XpQM5ri!|H6d5ArD1zZ6svX0T}GwZm$w^08l&Hm7#E62SK-Y%I6n?ZmthDe<}tVu zhBEOMCA(aWjenONY(_S8#D7RNa$Kqsp*tp_QFl8~nW2LN*FdW@O>vo+pu`6{rAyRc z7Cz+{wmpNU=LOSXw#^Q0n}E~>HmMsPIv&Dn)@phi6)GBuS~h4Sk!$W@uC$6QxVsD6 ut&dwATLq8r$LWhNX}mRfsD?-8vx2ttR8ZjyDba~_6%WGeTETyI&hZzI7Q>qW delta 925 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 diff --git a/openatlas/static/manual/.doctrees/admin/content.doctree b/openatlas/static/manual/.doctrees/admin/content.doctree index 349db79d41a1935dd7b61bf2839e54ab98a5df73..f1c72cba03d65d5973fd0c31fcfbca9919d3fc28 100644 GIT binary patch delta 552 zcmeyX{ZE^vfpzNVjVzCt#B@W8Q&SX5@)eRxOY(Cwi&GU!QY%U(+cJyGTTRJekDZbs z)`MHkrl%?-rKaTS0ODkH7BJQshy&c!P-+wwvnu0BPXYG nH8>}t_@p#1CAEkgM+!k4Ii+<9#C6gc4<g`-IiwklRD^pVxN>VFIiWM^R6cWo4GjkG?a#9s?67$ka z6Vp?R6_OM46p~UEl1qzA@^dq*fXXvci&CwoWU$9h$q?%y*BCa4Ig>q^TNqs?pJNu| zO)OC;$w*Zw$uCeyESdb4S&BJ5GjB2*ONX?zg04ae+_l)%?PF|#&0&| HKFI|DDD0Um diff --git a/openatlas/static/manual/.doctrees/admin/data_integrity_checks.doctree b/openatlas/static/manual/.doctrees/admin/data_integrity_checks.doctree index f0883bf59cb3ef936d7e4c2dd64e3c02610e5f91..ca406f80b6592c54dacf9c7b26ab828cd7d32eb5 100644 GIT binary patch literal 24968 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 diff --git a/openatlas/static/manual/.doctrees/admin/execute_sql.doctree b/openatlas/static/manual/.doctrees/admin/execute_sql.doctree index 6f14960666f6ee6afcf59ec8ded691b9c9a21fe5..602f65ace2aa799ece5650535c32e33804d7973e 100644 GIT binary patch delta 2102 zcmcIlO>7%Q6z*)YvAxa@`LSa=wlhgXrn2lNJ~G1X7kGwyUyF z9+v&F7WmjQV&J)fSPw$c)(D5Khe#aGTMtP}V4%ZMBam!QgRCmx94@`e>4>8qGcVJT5p<_@6fSQ7S3AEak#NMMiw6;sIZh|37H725Mji4ZKsD$PQ=% z*qZxU8qH?!rl#R?Ta=q&iAQ>;v6YMte(v8B9Q}{XTm6hwdI4RM6`zML|-uLfoM$XvYvI=HW(%vtP*TqAq3Fvm(xmin^VpR3Gj6 zhiGSM3O?)zRWbd4k1{iS!_?(NU6)K<@Mj#I<|k2xo}>&AKGaad>NDpKE{5cuKV~w46?up-yqk>0qyX>fahTn2E{W?##p!z;i_Hbh6#_S*|aNC0l<$} zYPb%7EWnkXBPis$cdUK;1*zL3Wf=C3k*5rjlQj|*E_=r-hwD8(S>YN&uE`qLsv~%3 zLs?4e@R=`0cCXp|GDlX{a`a}yxmS=R^)egoWp(Ih!#8aBnhh7&#yO^=WK+eAq%UQq zJo`AO*tuon%(4-`Y{V`XFV0I12OU!`1z(j delta 1795 zcmb_dZD?C%6yBTWCT*6FwkB=9`*wr2Nt?_uJ6Xp*TvuzGF_5};f>UnNH@&${?#*&< zW`hhXGNsT7^JJhyr9))M99k;=m4_}>kR4E^JI-(*c~5rp~YaBtpo zp7T8CIq%K<#L@|AUb^h-S(etD2!%hJZe#q;dY9~kYtmczeAO0#l+9sLuE0&(YoTk3 z{Y+KqShTUZqFyqq7piYm&sY1Dka8W)x`LqEW74Pi_6eNzhT%)QpL_*B*oRv_RwBxP z5=}WF(7ac`24K4RkmSVN_u#5`H=J<<$qVpY%i)%sLGyY>&QplDgdNIH^_Jpr*T&&F zRx)zBMzgt+v6;s&$RiF3N3-NY>^qOJ4^56`sj09MqX?ntw8Sz@Gih4R%$AF^uOQFm z3fNQE7@d|YRL@Vx26zFTc>V+h;tZU0R0WfXSWU9DcM{0;2kB{WsH_=l+8p6+d>d^Vrm3UQ-+qvse zr)*Ck=I|EL|Bjj7|h`1c9oNnWC1mNqy z6rt~i!muaUL)Os0AQXeWJyFqW>@fP zfG=pT^-(&RgNxB&OkIoa^KEnEs0BeUcI_i09LjMFUj-cmsFUS0O$(&P+<#Nx@if~J!lcxxGxC-39cMU&jDz-Ph4cmt@-aB_!$ zJd%FUZBmjSxu~; zkx^&zZc!;gbhX8s?~3cPiMNMjq$+4>0cEwcz-FlzE952SPIizlnmkvIgOvp&KY63P z^kjV@?#U13qWJ2-${sb$1S{O^AitQAv2gMe1s&5wpg~^2{(exC6f%nyQu535a`F>X zQd9J}LNb5?$j&WRD9K2j?4`JQa*LSKWPPP_9czd@Q5rWNSJL8OESUUBOWQOt4`_9S zuMfgzE+m^3aM&EKy-`A3A*r;aBtH-2*yNndV)Trf$Bd Hqa_FcIpEiR delta 666 zcmaD{{kxi_fpzMKjVw|e66THy<%vaknR)37<(WA-3Q4I7#TohKd6P{zEF>&(NN#T8 z_|DAOJGqJ{f+fE+CuQ<0UR{<{y>z|F`hupDZFy@MlP2#53ZcktmgBQvV!Q&>q(8Ys zK%ON$vm|5kN&!EU@{G*n42ArH)S|=^kUNSii%U{-6%zAO6ml~2QWcVlQWLX_6%vb5 z6-tX!Qxu>UZAX~GDKwigeezNvW3tTJEFc`i#8@*qS2T~;IXFxqEi)$-Y~ADlMfuI# zVp|v)H6|YvmEuE@w3;L)J=vB`ZL_Y#YgWaHAsMM)jS6{*xv2{IX$mDk0WGa4&j2kg zki=wtxhi2%OjVOt%Qdr>LRAz^-eAl%d8eEJ$l%HEz;uzQfq zn9QNn%4-02GLrVqyOcCJ7)vKV(bC4WG>=P5E5g?YYAG diff --git a/openatlas/static/manual/.doctrees/admin/frontend.doctree b/openatlas/static/manual/.doctrees/admin/frontend.doctree index 4864d9c3757e2feb2ba86802c6537cf6e709ecb9..30e0fc7b76cee14ee02939989a39f5ae262b0aa3 100644 GIT binary patch delta 972 zcmcgq&ubGw80{w6{MZ_+rL`5Id>%wwZ5pq7(4zF9DU?dli^}ZoBs0E<@zFM4%$qhKo{lc$cw#(PTjssni`lYtxAZWC*cL<+2nnTNV{nP^DT=Ub zA(;)>$mw9_o)y4*IOq`^f{$7__DXkS@7C2R=<7sb%Hd7}mggWK&t z+ecQdl%|zi?rV=ekIv-mNZq%VN*k!_Q+!FSRIaOfwV^JLUL3df{p-#(^{zbiw|6g# zJ1`IA59m{>bL7o23TP;NlLx7=YN5KEY*uY!`xg}-HFORLYh}v&0T!4^BnfAk=2>!d zkyGsitgSYFn)t&bojS@x0TEx<9V_!n0|W%?Kr%N4B>^}dVl7=s^XCx(+s%M8sVxR1 zbQ~zH4K+A1_&;pU@1^rQo5%4mWT(8Z>PvA>)y=Xok-R_J&KV2I)#JPQ*>=Sk8EF^w cAqEwOx>!a&7CM<(V@G(W^)+oLS0>kt@4**Wq5uE@ delta 650 zcmdmKFh!TOfpu!9*hbbTO!5&7j0_CEiFuU@1x5K;smUe93OSkCsR||e3K@xIsgnzs zMJEd}dx+;LBqtUFg)>r%QWY|b6%uobQWH}uCr2}D<)!84lo34n2Ztgdbt}2s6?8%I0*Y-k)5Iq)!1Ao_3aUx`Gu;)FVm?GV+WoX0qqSzuFV$q;;6dsMDOFimiysT(dR zVQCS*s*LpSVq7JrZs}&)B$}P(bSAJDs-tQiwnl+_l|5Z9ZwPgXH=Ckvj8IQIqU2cF zg&cb)ubS+KPa3^-kLV&epQ`ezxf7hySBsSHA)5a$p<$0C@O#xsxf+8X-=e4nCPHDb zs(+B`p|hr4T7VNZZRfUx$pvRnYuaO+Ar!2d_H3?CO*K$|)6}Al>e0B8Qe8J=J8_q& z9#KjDkvP<)$gV@uDcgc;HMoyN0+ftU{?kn$CW~ke6%&-_v(T+@Gov!u zD?lpxgm^FInNHw%J_~4t<(Py|YG0Haupt+*Aw$wI)YKh~5?lk@Xxt&Y-7W&=6}?W>iCu^8h=t zXLp*`?=a=4{;D69e&MKs9MyUr)gb9BrU-8HD*{^=z=G)Y69+c>b~HMIA2S-~i%_>* zT%m;)@x5s$Jc_#9e2ePysG0JJjzTmHJA-Z+9o4HUkZC0I*{2oFO;Jrx=$cTRrJ8h? z*y?uS&M{bN?2sOFT823-kMgv<_Jk$9-V~7@3BFn|+@GS6mti8H8X` zaoq1)Ixh@yM}b$M!PCBo4>~Ji)11y0-_{o>zHh*wx;Y59gS9YT)-8uIXCq8D58;2( zQu84x20u1Ghd(46%?J6PQsF3~%;+?O#A8{7jhU|tLM^9!r$iC$yokYk5u;dyjyqTL z^clWl^U>E@+Do_*oGBZSBj|AqA-sf3{CTMXJ`PPv^~(=K@A{s!f=BjvqHO)Ht33p(XNw%CK=cRuEK0S+P delta 1750 zcmbW2O>7%Q6vsPu)~P?6#2-y;uNgzDxF&X>G!PXE`H&n-AyLy_0>PBEJ@%|?@0#6p zLXZ$GDoBx1mFT%#097pri33O|H!kIZC<+206bT85UO2T)iNvKxX4YB9i3BQKEbYvD z|Nrm3nK#~;*_aeA2v@&}es;A*)yJ({e@Pj>riV%+^-FX_J z=Nfq$TFpSV>)AcQm%A>Y9QcF`!f?|O97s25cdkiaJ$AAARx?2bdWnB0XaQ~u6KI9& z30&_zm~)JJar50~E0C{z;CKmLgKb9~eZu0xFw}iaxXxlf2GkpcE3SU@C0yyA#vf9V z4$;_jH`g(_P7v z)kd|5^8{Dba+ws!9tV;iu*teT#=JD(G!1v}6UdanqC0W*_e=v6K=EK&ZapYPb?h(+Smv!K5`*0nt z9?e?|tGQ(IjHDD*_|qR^C!v%Liq#S>6NPA!L5jF8>H3nY6?H5bFxD3s)QN@*8j%cH zRrVEFdAs8jYJIcl60C(%Px1;bS`|#P3LeG>=KM3r2iN>lXar6NB47)IBm4b6?eNP4 zPNUDc-w5~n%<>C&bZp00Bd<4PjTCpsi-ntKe28Veu9v1u^HyfWzCNu1rV%=u9T~>5946RvE zO9oM}Y~X@54u&SPFhgxc;w71#mxSTB!`M@~-@%mYe-8b{nND%0ZHsB_zY4ntqPFc8 zZ!Z(NXEx^y{1kp9(Q0hNAUfw+k{G7Mcr{$=tOZLD3x_=wzioFwzYWjBtw;}~BC#2c z7i4?ppg#4mni|36jRGOXJ*OCiJK~6=k16)rVD9h)T7aqOV{krtguRpRN7*wm+CkAT zPM}i|i=;%(aMEI!VhnN#vyqk;`2@7n18`e(p_8VEpJhDFJ)VJAVo$JpdO3CudDpjM zuh~#@eK!7w{dt86R?hRE68|Z1{Z*$T)rk2x@PCpDk6AJIR~j_VS9k*TR0`|$qYLP7 DUDY_^ diff --git a/openatlas/static/manual/.doctrees/admin/iiif.doctree b/openatlas/static/manual/.doctrees/admin/iiif.doctree index 941d7e3f81d37182345774ba71d84472e7844af3..317d034fb070fe01d579cff34a0bb4df76079d96 100644 GIT binary patch delta 227 zcmeyL^ec&_fpu#BMwa^=d~U9JiAgz`dFcwCo}O-#-*b5KxuOeMOs?VN-aL^r zgpEf>A-S}uC^fGnr&4EfqJYd~UI9-`!8(D3n1b$tos7bpFA9n=3QoyjkDZbctl2oF zc8W#@YXn4ivw%n$BV*^}IHAtXf@1I48MjVmlrv$}nfyb}a&n%W)Z|_{GsZl)*kx8B Og~Ys+%~$1D2?79X6(xly_bSM3b`x=7WbB&UE!+vT=7WgzW___M?2J1nv&flDwv-EI k&MD5H+$CqhmW)l7$cgyEJ8%N;S7+ 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 E0GH>3d;kCd literal 64309 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 diff --git a/openatlas/static/manual/.doctrees/admin/map.doctree b/openatlas/static/manual/.doctrees/admin/map.doctree index 3b51ef2e0cd66b3e10daa2e07d6540b5b2dd9d71..1292c1911b738712950cefb4616f76370aae7a5f 100644 GIT binary patch delta 612 zcmbQGdrgnEfpx04_(oP!W=5{b*33?mzcIOhSz42unFAP8C+}m^VoaX=pVUkGCX8K^zp`sh&SjNlET7!X`hjD827Bxjjf|AZ z&1_bTTR;Y}CIc03ocxx}oPT46Oa^m?tY3zlUujZC#pFU3MeaJy#woQx9jqBAz?Pf> zS;DN5(K&e*yCT@4V_=J}04>s%pWVZyUy`4nQ>>qxSTLnDLp!59LpDPvL(ZE6Y|BGV z9mcgl^)izea4RwgXlYHh=M?AB(o)b>NJ&l0%u6kvJd;y_IkT8+@<$GFmL6Oxgn=qj zGK&+Fa#B;Kz`P{L8Nm1pIw2qcPoIP(&7Q%fofQj39cmj#mOEY45_GAC|!5{+O40M~@T As{jB1 delta 681 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 diff --git a/openatlas/static/manual/.doctrees/admin/vocabs.doctree b/openatlas/static/manual/.doctrees/admin/vocabs.doctree index ea6795d1677d48bc1cfc90ab600a22357fa6b209..96b020a74ffd31d6914ca9ba1f4b6aae91c7e1b6 100644 GIT binary patch delta 2342 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 literal 176613 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 Z_;5_tSc4$gus=$%rq5xlUZ2|Z{{tqnn=JqU diff --git a/openatlas/static/manual/.doctrees/technical/api.doctree b/openatlas/static/manual/.doctrees/technical/api.doctree index 496ab1ff71a6a53bade0b854f7b6f40af45b04fd..de5a8f75daeba1a038eaeead549bac8781afe8cd 100644 GIT binary patch delta 231 zcmbPpf~n~w6H5c@)bfoiw=HN27Bz346z=3R@j#mP-Mqu^U0o!jC&?GPC3N5ce2aW NY{osCH%!gp0|4^AN`(Lb delta 135 zcmZoV$u#E#6H5c@RKblbw8PZvWlctDFJ~TC$ao1+CX*qlV DU2!mW diff --git a/openatlas/static/manual/_static/documentation_options.js b/openatlas/static/manual/_static/documentation_options.js index 37201a40f..732ad76f8 100644 --- a/openatlas/static/manual/_static/documentation_options.js +++ b/openatlas/static/manual/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '8.7.0', + VERSION: '8.8.0', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/openatlas/static/manual/admin/api.html b/openatlas/static/manual/admin/api.html index bee02eba4..10ae5fa36 100644 --- a/openatlas/static/manual/admin/api.html +++ b/openatlas/static/manual/admin/api.html @@ -5,7 +5,7 @@ - API — OpenAtlas 8.7.0 documentation + API — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
- 8.7.0 + 8.8.0
@@ -113,13 +113,28 @@

API

Description: API

-
    -
  • Public (default=off). If you turn it on the API and linked files with a license can be accessed even without logging in. This might be useful if you want the data open anyway to allow other systems to use it.

  • +
      +
    • Public (default=off)

      +
      +
        +
      • If turned off the API and files with a license can still be accessed by

        +
        +
          +
        • A browser used b a logged in user

        • +
        • If the IP of the request-computer is on the IP Whitelist

        -

        Note: The API and files linked to a license can still be requested from:

        -
          -
        • a browser, where a user is logged in

        • -
        • if the IP of the request-computer is on the IP Whitelist

        • +
        +
      • +
      • +
        If turned on the API and linked files with a

        license can be accessed without being logged in. This might be useful +if you want to allow other systems to use your data without +restrictions.

        +
        +
        +
      • +
      +
      +
    diff --git a/openatlas/static/manual/admin/arche.html b/openatlas/static/manual/admin/arche.html index db8a791fb..b5d50aec0 100644 --- a/openatlas/static/manual/admin/arche.html +++ b/openatlas/static/manual/admin/arche.html @@ -5,7 +5,7 @@ - ARCHE — OpenAtlas 8.7.0 documentation + ARCHE — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
    - 8.7.0 + 8.8.0
    @@ -112,41 +112,48 @@

    ARCHE

    -

    Be aware this feature is only usable for a specific dataset.

    -

    ARCHE (A Resource Centre for the HumanitiEs) is a service aimed at offering stable -and persistent hosting as well as dissemination of digital research data and resources.

    -

    In order to import data from ARCHE to OpenAtlas changes to instance/production.py are needed (ask your OpenAtlas -administrator for further details):

    +

    ARCHE (A Resource Centre for the +HumanitiEs) is a service aimed at offering stable and persistent hosting as +well as dissemination of digital research data and resources.

    +

    In order to import data from ARCHE to OpenAtlas, changes to +instance/production.py are needed (ask your OpenAtlas administrator for +further details):

    instance/production.py
    ARCHE = {
      'id': 0,    # Top collection of the project (acdh:TopCollection)
    - 'url': 'https://arche-curation.acdh-dev.oeaw.ac.at/',  # Base URL to get data from
    + 'url': 'https://arche-curation.acdh-dev.oeaw.ac.at/',  # Base URL to get
    + data from
      }}
     
    -

    The ARCHE button is displayed in the Admin/Data menu only if above data is provided. +

    The ARCHE button is displayed in the Admin/Data menu only if the +changes mentioned above are made. Click on the ARCHE button to get to the overview section.

    Overview

    -

    Data provided in the production.py is displayed. If user belongs to the manager user group, a button called -Fetch is displayed. Click Fetch to fetch data from ARCHE.

    +

    Data provided in the production.py is displayed. If user is part of +the manager user group, the Fetch button is displayed. Click +Fetch to fetch data from ARCHE.

    Fetch

    Data fetched from ARCHE are listed in a Table. -Only data (based on the Artifact), which was not imported is shown.

    +Only data (based on the Artifact) that was not imported is +shown.

    Click on Import ARCHE data to import data.

    Data from ARCHE

    -

    All metadata is gathered from the EXIF endpoint of the first image in the “2_JPGs” collection. Additionally the -corresponded .png from “4_Orthophotos” is taken as reference file.

    +

    All metadata is gathered from the EXIF endpoint of the first image in the +“2_JPGs” collection. Additionally, the corresponding .png from +“4_Orthophotos” is taken as reference file.

    Automatically created entities

    -

    All necessary new types, persons etc. will be automatically created or added during the import process.

    +

    All necessary new types, persons etc. will be automatically created or added +during the import process.

    ../_images/ARCHE_import_OpenAtlas.jpg

    Type

    @@ -158,7 +165,8 @@

    T

    Reference System

    -

    New Reference System named ARCHE is created with data provided by instance/production.py

    +

    New Reference System named ARCHE is created with data +provided by instance/production.py

    Entity

    diff --git a/openatlas/static/manual/admin/content.html b/openatlas/static/manual/admin/content.html index edf9b8673..a2342272e 100644 --- a/openatlas/static/manual/admin/content.html +++ b/openatlas/static/manual/admin/content.html @@ -5,7 +5,7 @@ - Content — OpenAtlas 8.7.0 documentation + Content — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
    - 8.7.0 + 8.8.0
    @@ -112,15 +112,15 @@

    Content

    -

    Displayed texts in available languages can be customized here:

    +

    Used to cutomise text in available languages:

      -
    • Intro - displayed at the top at the start page before logging in

    • -
    • Contact - displayed at the contact site, e.g. contact information for +

    • Intro - displayed on top of the start page before log in

    • +
    • Contact - displayed on contact site, e.g. contact information for the website maintainer

    • -
    • Legal notice - displayed at the legal notice site, e.g. information +

    • Legal notice - displayed on the legal notice site, e.g. information about the institute

    • -
    • Citation example - displayed under the form at insert/update of an -edition or a bibliography

    • +
    • Citation example - displayed underneath the form fields of an +insert/update of an edition or a bibliography entry

    Links to Contact and Legal notice are available at the cogwheel icon in the top right corner if they contain text.

    diff --git a/openatlas/static/manual/admin/data_integrity_checks.html b/openatlas/static/manual/admin/data_integrity_checks.html index c1310a75c..ee2fe40e1 100644 --- a/openatlas/static/manual/admin/data_integrity_checks.html +++ b/openatlas/static/manual/admin/data_integrity_checks.html @@ -5,7 +5,7 @@ - Data integrity checks — OpenAtlas 8.7.0 documentation + Data integrity checks — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
    - 8.7.0 + 8.8.0
    @@ -112,68 +112,76 @@

    Data integrity checks

    -

    The quality of data is very important to us. Although ultimately the data -responsibility lies with editors and project managers we take great care to -avoid entering of inconsistent data on a technical level, e.g. with the user -interface it is not possible to enter begin dates which are later than end -dates.

    -

    Nevertheless mistakes can happen, not only on the application level but also -e.g. when importing data from other projects or deleting files outside of the -application. Because data integrity is important for the quality of research we -implemented functions to check possible inconsistencies which are described in -detail below.

    +

    OpenAtlas puts great emphasis on the data quality. Even if the +responsibility for the quality of the information entered ultimately lies +with the individual projects, avoidance of inconsistent on a technical level +are important during the development of the application. It is therefore not +possible e.g. to enter the start date of an event after the end date of the +same event

    +

    Nevertheless mistakes happen, not only on the application level but also +when importing data from other projects or deleting files outside of the +application, etc. Therefore, functions to check possible inconsistencies were +implemented and are described in detail below.

    Orphans

    Orphans

    -

    In this tab entries like dates which are not linked are shown. They could be -artifacts from imports or bugs and can be deleted. If they seem to appear -regularly again (without imports or known bugs) please report that issue.

    +

    Here unlinked data are shown. These so called orphans could be artifacts +from imports or results of bugs and can be deleted. If orphans seem to appear +regularly (without data imports or known bugs) please report this issue to the +OpenAtlas team e.g. via the +OpenAtlas redmine.

    Type

    -

    These types were created but have no sub types or associated data. Maybe they -originate from the first install or were never used.

    +

    The types listed here were created but have no sub types or associated data. +They might have been pre-installed before teams have started entering +information or were created and then never used.

    Missing files

    -

    Here are listed file entities which have no corresponding file, most likely -because the file itself doesn’t exist anymore.

    +

    File entities without a corresponding file are listed here. This is (most +likely) caused by the deletion of files from the dataset.

    Orphaned files

    -

    Files that have no corresponding entity are listed here.

    +

    Files without a corresponding file entity are listed here.

    Orphaned IIIF files

    -

    IIIF files that have no corresponding entity are listed here.

    +

    IIIF files without a corresponding entity are listed here.

    Orphaned annotations

    -

    Annotations that are linked to an entity, but where the file and the entity -doesn’t have a connection are listed here. There are three options to proceed:

    +

    Annotations that are linked to an entity, but file and entity themselves are +not linked are listed here. There are three options to proceed:

      -
    • Relink entity: Add a link between file and entity

    • +
    • Relink entity: Adds a link between file and entity

    • Remove entity: Removes the entity from the annotation

    • Delete annotation: Deletes the whole annotation

    Orphaned subunits

    -

    Subunits that are missing a connection to the level above. E.g. a feature -without a connection to a place.

    +

    Subunits without a link to the level above, e.g. a feature +with no connection to a place.

    Circular dependencies

    -

    A check if an entity is linked to itself. This could happen e.g. if a person is -married to herself or a type has itself as super. It shouldn’t be possible to -create circular dependencies within the application. Nevertheless it’s a useful -check for e.g. if data is imported from other systems.

    +

    It can be checked if an entity is linked to itself. This could happen, for +example, if a person has been entered as is married to themself or a type +has itself as super. It shouldn’t be possible to create circular +dependencies within the application but nevertheless it’s useful to +check the database as this can happen through data imports or bugs. If you +find circular dependencies in your dataset regularly with a previous report +or known bugs, please report the issue e.g. via the +OpenAtlas redmine.

    @@ -181,64 +189,68 @@

    Dates

    In this view various results of invalid or inconsistent dates are shown.

    Invalid dates

    -

    Invalid date combinations are shown, e.g. begin dates which are -later than end dates. These issues should be fixed because otherwise the user +

    In this tab invalid date combinations are shown, for example dates of begins +That are later than end dates. These issues should be fixed, otherwise the user interface won’t allow to update these entities.

    Invalid involvement dates

    -

    Incompatible dates at involvement are shown. E.g. a person participated at an -event longer than the event took place.

    +

    Incompatible dates for involvements are shown. Example: A person participated +in an event for longer than the event lasted.

    Invalid preceding dates

    -

    Incompatible dates for chained events are shown. E.g. a preceding event started -after the succeeding event.

    +

    Here, incompatible dates for chained events are listed. Example: A +preceding event starts after the succeeding event.

    Invalid sub dates

    -

    Incompatible dates for hierarchical events are shown. E.g. a sub event began -before the super event began.

    +

    This tab shows incompatible dates for hierarchical events. Example: A +sub event begins before the super event began.

    Check similar names

    -

    Here you can search for similar names. Depending on selection and data volume -this might take some time.

    +

    This test will search for similar entity names. Depending on selection +and data volume this might take some time. The following options are given:

      -
    • Classes - select the class which you want to search for similar names

    • +
    • Classes - select the class you want to search for similar names

    • Ratio - select how similar the names should be, 100 is the default and -means absolute identical

    • +means 100% identical

    The function uses the fuzzywuzzy -package is used which in turn uses the +package which uses the Levenshtein Distance.

    diff --git a/openatlas/static/manual/admin/execute_sql.html b/openatlas/static/manual/admin/execute_sql.html index 597b0e1c6..e1b7a2fbf 100644 --- a/openatlas/static/manual/admin/execute_sql.html +++ b/openatlas/static/manual/admin/execute_sql.html @@ -5,7 +5,7 @@ - Execute SQL — OpenAtlas 8.7.0 documentation + Execute SQL — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
    - 8.7.0 + 8.8.0
    @@ -113,32 +113,44 @@

    Execute SQL

    Admins can execute SQL direct to the database.

    -

    Warning: direct database manipulation can result in data loss and an unusable application!

    +

    Warning: direct database manipulation can result in data loss and an +unusable application!

    Preparation

      -
    • Backup the database (Export) and download it in case you lose data or crash the application

    • -
    • Create a local database with the backup and test the SQL on this local version first

    • -
    • If there is no recent backup (maximal one day old), the SQL function is not available

    • +
    • Backup the database (Export) and download it in case you lose data +or crash the application

    • +
    • Create a local database with the backup and test the SQL on the local +version first

    • +
    • Note: If no recent backup is available (max. one day old), the SQL +function is not available either.

    Keep in mind

      -
    • It’s a simple but very powerful feature. Unlike the rest of the application there are no safeguards to prevent e.g. total data loss and/or making the application unusable.

    • -
    • If data is lost and/or the application crashes it can be fixed only with server and database access. Depending on the situation fixing the problem could take some time.

    • -
    • A transaction (BEGIN, COMMIT) is automatically build around your statement

    • -
    • Don’t refresh the page (e.g pressing F5) because this will execute the statement again.

    • -
    • You can use multiple statements (every statement has to be terminated with “;”) but only the result of the last one will be displayed.

    • +
    • This is a simple but powerful feature; unlike the rest of the +application there are no safeguards to prevent total data loss and/or +making the application unusable.

    • +
    • If data is lost and/or the application crashes it can only be fixed +by a person with server and database access. So depending on the situation +this might take some time and effort.

    • +
    • A transaction (BEGIN, COMMIT) is automatically build around your statement.

    • +
    • Don’t refresh the page (e.g pressing F5) as this will execute the +statement again.

    • +
    • You can use multiple statements (every statement has to be terminated with +“;”) but only the result of the last one will be displayed.

    Result

    -

    After clicking on Execute the result of the last query is shown below depending on the statement:

    +

    After clicking on Execute the result of the last query is shown below +depending on the statement:

    • SELECT - the row count and the (not very readable) query result

    • INSERT, UPDATE, DELETE - the affected row count

    • -
    • Error - there is nothing to worry about because the transaction executes the statement(s) only if there is no error.

    • +
    • Error - there is nothing to worry about because the transaction +executes the statement(s) only if there is no error

    diff --git a/openatlas/static/manual/admin/export.html b/openatlas/static/manual/admin/export.html index 93e02f6a4..964a58238 100644 --- a/openatlas/static/manual/admin/export.html +++ b/openatlas/static/manual/admin/export.html @@ -5,7 +5,7 @@ - Export — OpenAtlas 8.7.0 documentation + Export — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
    - 8.7.0 + 8.8.0
    @@ -119,23 +119,23 @@

    Export SQL

    Export SQL

    A SQL dump will be created with pg_dump in a plain text format. The -resulting file could be used to fill an existing empty database, e.g.

    +resulting file can be used to fill an existing empty database, such as

    psql openatlas < export.sql
     

    Export database dump

    -

    A SQL dump will be created with pg_dump in custom archiving format (-Fc). -With this format pg_restore can be used to restore the database regardless -of which operating system and line breaks are used e.g.

    +

    A SQL dump will be created with pg_dump in a custom archiving format (-Fc). +In this format pg_restore can be used to restore the database regardless +of used operating system and if line breaks are used or not

    pg_restore -d openatlas -1 export.dump
     
    @@ -144,7 +144,7 @@

    Export database dump

    Export CSV

    When the Export CSV button is clicked, a ZIP file containing several -CSV files is downloaded. The CSV files are:

    +CSV files is downloaded. The ZIP file contains:

    • All entities divided by their OpenAtlas class

    • Links

    • @@ -154,13 +154,13 @@

      Export CSV

      Export JSON

      -

      When the Export JSON button is clicked, the download of a JSON file -begins. This file contains following keys:

      +

      When the Export JSON button is clicked, a JSON file is downloaded. +This file contains the following keys:

      • Entities

      • Links

      • @@ -175,8 +175,8 @@

        Export JSON

        Export XML

        -

        When the Export XML button is clicked, the download of an -XML file begins. This file contains following tags:

        +

        When the Export XML button is clicked, an XML file is +downloaded. This file contains the following tags:

        • Entities

        • Links

        • diff --git a/openatlas/static/manual/admin/frontend.html b/openatlas/static/manual/admin/frontend.html index b8e20e5b0..5e6b3b6f7 100644 --- a/openatlas/static/manual/admin/frontend.html +++ b/openatlas/static/manual/admin/frontend.html @@ -5,7 +5,7 @@ - Frontend — OpenAtlas 8.7.0 documentation + Frontend — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
          - 8.7.0 + 8.8.0
          @@ -112,20 +112,22 @@

          Frontend

          -

          Many projects like to have a presentation site (frontend) to make the project -results accessible to a wider audience. In case there is already a running -version of a presentation site following values can be configured to create -links to it in the backend:

          +

          Many projects have a presentation site (frontend) to make the project +results accessible to a wider audience. If a running +version of a presentation site exists already, the following values can be +configured via Admin to create links the backend:

          • Website URL - address of the presentation site, e.g. -https://frontend-demo.openatlas.eu/. It will be displayed at the backend -overview.

          • -
          • Resolver URL - in case entity details can be viewed using the id at -the end of an URL, a resolver URL can be specified. E.g. with the -resolver URL https://example.net/entities/ a link for the presentation site -view of an entity would be shown in the backend and would look like this: +https://frontend-demo.openatlas.eu/. A link to the website will be displayed +at the backend’s overview page

          • +
          • Resolver URL - if entity details can be viewed by using the id at +the end of an URL, a resolver URL can be specified. Example: with the +resolver URL https://example.net/entities/ a link for the presentation site +view of an entity would be shown in the backend and would look like this: https://example.net/entities/1234

          +

          Linking the presentation page via resolver URL to the backend allows you to +view entries and their changes in this frontend as well.

    diff --git a/openatlas/static/manual/admin/general.html b/openatlas/static/manual/admin/general.html index e8c2d1e52..3ff2ec453 100644 --- a/openatlas/static/manual/admin/general.html +++ b/openatlas/static/manual/admin/general.html @@ -5,7 +5,7 @@ - General — OpenAtlas 8.7.0 documentation + General — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
    - 8.7.0 + 8.8.0
    @@ -113,21 +113,31 @@

    General

      -
    • Site name - the name of the site. Displayed in browser tabs and used in emails.

    • -
    • Default language - user can change their preferred language in the Profile.

    • -
    • Default table rows - user can set their preferred value in the Profile

    • -
    • Log level - how much should be logged. For now only info, notice and error are used

    • -
    • Minimum jstree search - minimum characters that have to be entered to filter trees e.g. types

    • +
    • Site name - the name of the site. Displayed in browser tabs and used +in emails

    • +
    • Default language - user can change their preferred language in the +Profile

    • +
    • Default table rows - user can set their preferred value in the +Profile

    • +
    • Log level - users can choose how much information will be logged. At +the moment only info, notice, and error are used

    • +
    • Minimum jstree search - users can choose a minimum count of characters +that have to be entered to filter trees such es types, etc.

    Authentication

      -
    • Random password length - length of generated passwords at password reset or user creation

    • -
    • Minimum password length - minimum length required

    • -
    • Reset confirm hours - how long a requested password reset code is valid

    • -
    • Failed logins - how often it could be tried to login with a specific username

    • -
    • Failed login forget minutes - minutes to wait after failed logins are exceeded

    • -
    • Image processing - if activated preview images for detail and table views are generated

    • +
    • Random password length - choose the length of an automatically generated +passwords at a password reset or upon user creation

    • +
    • Minimum password length - minimum length required for a password

    • +
    • Reset confirm hours -choose how long a requested password reset code is +valid for

    • +
    • Failed logins - choose how often a login attempt is allowed with a +specific username

    • +
    • Failed login forget minutes - choose how many minutes a user has to +wait after the chosen number of failed logins were exceeded

    • +
    • Image processing - if activated, preview images for detail and table +views are generated

    diff --git a/openatlas/static/manual/admin/iiif.html b/openatlas/static/manual/admin/iiif.html index f46b770c0..3aa4b6f5f 100644 --- a/openatlas/static/manual/admin/iiif.html +++ b/openatlas/static/manual/admin/iiif.html @@ -5,7 +5,7 @@ - IIIF — OpenAtlas 8.7.0 documentation + IIIF — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
    - 8.7.0 + 8.8.0
    @@ -119,19 +119,19 @@

    IIIF

    Be aware that

    • IIIF is optional for an OpenAtlas installation

    • -
    • Enabling it can expose used files to the public (without login)

    • +
    • Enabling IIIF can expose used files to the public (without login)

    Configuration

    -

    In case you are running multiple OpenAtlas instances you should create a sub -directory for every instance at /var/www/iipsrv/ and also add these to +

    In case you are running multiple OpenAtlas instances, you should create a sub +directory for every instance at /var/www/iipsrv/ and add these to URL and Path accordingly.

    These formats have been successfully tested with OpenAtlas:

      diff --git a/openatlas/static/manual/admin/import.html b/openatlas/static/manual/admin/import.html index bf803af1e..902700685 100644 --- a/openatlas/static/manual/admin/import.html +++ b/openatlas/static/manual/admin/import.html @@ -5,7 +5,7 @@ - Import — OpenAtlas 8.7.0 documentation + Import — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
      - 8.7.0 + 8.8.0
      @@ -112,9 +112,10 @@

      Import

      -

      Import is available for admins and managers and offers functionality to import data -from CSV files. -Currently lists can be imported containing:

      +

      Import settings are available for admins and managers and offer functionality +to import data directly from +CSV files. +Lists containing the following fields can be imported currently:

      -
      -

      Preparations

      -

      Automatic imports can be dangerous for data integrity and it may be very time consuming to reverse them so we strongly advise:

      +
      +

      Preparation

      +

      Automatic imports cause problems regarding data integrity, so proceed with +caution. Fixing such problems can be time consuming, so we strongly advise +you to:

        -
      • SQL backups before import, an existing backup not older than a day is enforced

      • +
      • Make an SQL backups before the import of any data; an existing backup +not older than a day is enforced

      • Use the preview (enabled by default) and check if the data looks alright

      -

      The import operation is encapsulated in a transaction, meaning if there is an error in the script, -nothing will be imported.

      +

      The import operation is encapsulated in a transaction. So if there is an +error in the script, nothing will be imported.

      The file:

        -
      • Take a look at the example.csv or example_place_hierarchy.csv

      • -
      • Make sure the extension is spelled correctly in lower case e.g. my_data.csv

      • -
      • In the first row should be the header names

      • -
      • Each following row is one data set. Values are separated by commas

      • -
      • Text can be enclosed in double quotes (), especially if the contain commas

      • +
      • Take a look at the example.csv or +example_place_hierarchy.csv

      • +
      • Make sure the file extension (.csv) is spelled correctly in lower case e.g. +my_data.csv

      • +
      • Header names are found in the first row of the table

      • +
      • Each following row contains one data set; values are separated by commas

      • +
      • Text should be enclosed in double quotes (), especially if they contain +commas

      -
      -

      Projects

      -

      To retrace imported entities they have to be associated with a project. If there is none (or not -the right one) available, you’ll have to create a new one. The name and description can be updated +

      +

      Project

      +

      To find imported entities after the import, they have to be associated with a +project. If no project is available (or not the right one) you have +to create a new one. Name and description of said project can be updated later.

      Import class

      -

      Only one class can be imported at a time, so you have to choose one of the available classes.

      +

      Only one class can be imported at a time, so you have to choose one of the +available classes.

      Possible import fields

      -

      The header can contain the following titles. Columns with other titles won’t get imported but shown as -an error message.

      +

      Column headers can contain the following titles. Other titles won’t be +imported and an error message will be displayed

        -
      • name - required, an error will be displayed if the header is missing. A warning will be displayed, if names in data rows are missing and these won’t get imported.

      • -
      • alias - only available for person, group and place, see Alias

      • +
      • name - required, an error will be displayed if name; the data will not +get imported if a name is missing

      • +
      • alias - only available for person, group and place, see +Alias

      • description - a description can be provided

      • -
      • origin_id - It has to be unique per project so if you have multiple like a person and place with id = 1 you can prefix them in the document e.g. person_1, place_1 before importing them

      • +
      • origin_id - this field has to be unique per project; if you have +same IDs like a person and place with id = 1, you can prefix them in the +document e.g. person_1, place_1 before importing

      • begin_from - used for dates, see Dates

      • begin_to - used for dates, see Dates

      • end_from - used for dates, see Dates

      • end_to - used for dates, see Dates

      • -
      • type_ids - used to link to types, see Types

      • -
      • value_types - used to link to a value type, see Value types

      • -
      • references - used to link existing references, see References

      • +
      • type_ids - used for linking to a type, see Types

      • +
      • value_types - used for linking to a value type, see Value types

      • +
      • references - used for linking data to already existing references in +the database, see References

      • wkt - only available for places and artifacts, see WKT coordinates

      • -
      • reference_system_* - used to link existing external reference systems, see External reference systems

      • -
      • administrative_unit - only available for places, id of existing administrative unit

      • -
      • historical_place - only available for places, id of existing historical place

      • -
      • parent_id - only available for place, id of a super unit in a place hierarchy, see Place hierarchy

      • -
      • openatlas_parent_id - only available for place, id of a super unit existing in OpenAtlas, see Place hierarchy

      • -
      • openatlas_class - only available for place and only used with parent_id, see Place hierarchy

      • +
      • reference_system_* - used for linking data to already existing external +reference systems in the database, see External reference systems

      • +
      • administrative_unit - only available for places, ID of existing +administrative unit

      • +
      • historical_place - only available for places, ID of existing +historical place

      • +
      • parent_id - only available for place, ID of a super unit in a place +hierarchy, see Place hierarchy

      • +
      • openatlas_parent_id - only available for place, ID of a super unit +existing in OpenAtlas, see Place hierarchy

      • +
      • openatlas_class - only available for place and only used with +parent_id, see Place hierarchy

      Alias

      -

      Alias can be entered as string. Multiple aliases can be separated with semicolon (;). -If an Alias contains a comma (,) please surround the whole filed with double quotes()

      +

      Alias can be entered as string. Multiple aliases can be separated +by semicolon (;). If an Alias contains a comma (,) please +surround the whole string with double quotes().

      Dates

      -

      Dates can be entered in the format YYYY-MM-DD in the fields begin_from and end_from. -You can also use time spans in combinations with the fields begin_to and end_to, -see: Date

      +

      Dates can be entered in the format YYYY-MM-DD. Fill out the begin_from +and end_from field for a known timeframe. For a timespan you can use +begin_to and end_to in combination with begin_from +and end_from. For more information see: Date.

      +

      Keep in mind:

        -
      • If the date format is incorrect, they will be displayed in red and won’t be imported

      • -
      • Missing values for time spans will be discarded silently, e.g. a valid value in begin_to, but an empty value in begin_from

      • -
      • There are no advanced checks between dates, e.g. end dates can be before begin dates. You should check them after the import at Data integrity checks

      • +
      • if the date format is incorrect, it will be displayed in red and won’t be +imported

      • +
      • if the required fields are missing data (begin_from +and/or end_from), values entered in the other fields (begin_to and +end_to) will be lost without further warning

      • +
      • There are no advanced checks for dates, so end dates can start before +begin dates. Check validity after the importing process; for more +information see Data integrity checks

      Types

      -

      It is possible to link entities to Type at the import which can be very useful e.g. if you have -a custom type Case studies to link them all in one go.

      +

      It is possible to link entities to one or multiple Type. This +can be useful for example when you use a custom type Case studies you +can link all of the imported data to this.

        -
      • Type ids can be entered at the column type_ids

      • -
      • You can enter multiple separated with a space

      • -
      • The id of a Type can be looked up at the detail view of a Type

      • +
      • Type IDs can be entered in the column type_ids

      • +
      • you can enter multiple IDs, separated by a space

      • +
      • the ID of a Type can be found at the detail view of the +specific Type in your OpenAtlas instance

      Value types

      -

      It is possible to link entities to value Type at the import.

      +

      It is possible to link entities to one or multiple value Type +when importing.

        -
      • Value Type can be entered at the column value_types

      • -
      • Type id and value are separated with a semicolon (;), e.g. 1234;-13.65

      • -
      • Value Type need always a value

      • -
      • You can enter multiple separated with a space

      • -
      • The id of a value Type can be looked up at the detail view of a value Type

      • +
      • a Value Type can be entered via the value_types column

      • +
      • type ID and corresponding value are separated by a semicolon (;), e.g. +1234;-13.65

      • +
      • for each value Type a value is required

      • +
      • multiple value type-value pairs are separated by a space

      • +
      • The ID of a value Type can be found at the detail view of a +specific value Type in your OpenAtlas instance

      References

      -

      It is possible to link existing Reference to imported entities.

      +

      The imported data can be linked to an already existing +Reference.

        -
      • Reference ID and pages are separated with a semicolon (;), e.g. 1234;56-78

      • -
      • To link Reference without page number, just add the ID without semicolon (;)

      • -
      • You can enter multiple Reference separated with a space, e.g. 1234;56-78 5678

      • -
      • The ID of a Reference can be looked up at the detail view of the entity

      • +
      • Reference ID and pages are separated by a semicolon +(;), e.g. 1234;56-78

      • +
      • to link a Reference with multiple page numbers, wrap the +whole cell in quotation marks, e.g. “1234;IV, 56-78 542;34-23 66;”

      • +
      • to link a Reference without page numbers, just add the ID +and a semicolon (;) without further information

      • +
      • enter multiple Reference separated by a space, e.g. 1234; +56-78 5678;

      • +
      • the ID of each Reference can be found at the detail view of +said reference in your OpenAtlas instance

      WKT coordinates

      -

      For places and artifact (multi)point, (multi)polygon, (multi)linestring coordinates or -GeometricCollection can be imported. Keep in mind to use -the WGS84 geodetic system (EPSG 4326). +

      For places and artifact (multi)point, (multi)polygon, and (multi)linestring +coordinates or GeometricCollection can be imported. Keep in mind to use +the WGS84 +geodetic system (EPSG 4326). Coordinates will be imported as WKT. -It is only possible to import one geometry for each entry. Since the WKT format uses commas (,), -surround the coordinates with double quotes ()

      +It is only possible to import one geometry for each entry. Since the WKT +format uses commas, surround tall coordinates with double quotes (“)

      Example:

      “LINESTRING (12.458533781141528 41.922205268362234, 12.53062334955289 41.917606998887024, 12.52169797441624 41.888476931243254)”

      @@ -245,12 +286,13 @@

      Possible import fields

      External reference systems

      It is possible to link the imported entity to an existing Reference System. -In this case, the header has to be named reference_system_* with the name of the -external Reference System appended, e.g. reference_system_wikidata. -If spaces occur in the name, please substitute them with underscore (_), e.g. -reference_system_getty_aat.

      -

      The entry consist of two values, separated by a semicolon (;). The first value is -the identifier, e.g. Q54123, the second value is the match type (close_match or exact_match)

      +Named the coulmn reference_system_* with the name of the external +Reference System appended, e.g. reference_system_wikidata. +If spaces occur in the name, please substitute them with underscore (_), +e.g. reference_system_getty_aat. +Each entry consist of two values, separated by a semicolon (;). The first +value is the identifier, e.g. Q54123, the second value is the match type +(close_match or exact_match)

      Example:

      Q54123;close_match

      @@ -258,36 +300,46 @@

      Possible import fields

      Place hierarchy

      -

      The parent_id or openatlas_parent_id is used to generate a Place hierarchy together +

      Use the parent_id or openatlas_parent_id to generate a +Place hierarchy together with Feature, Stratigraphic unit, Artifact, and Human remains. -The parent_id has to be an origin_id of a row in the current import file. -The openatlas_parent_id has to be an existing OpenAtlas entity ID with the correct class. -To declare, which entry has a specific class, the openatlas_class column is used. -Here the following classes can be entered: Place, Feature, -Stratigraphic unit, Artifact, and -Human remains. This is case-insensitive. +The parent_id has to be an origin_id of a row in the current +import file. +The openatlas_parent_id has to be an existing OpenAtlas entity ID +with the correct class. +To declare, which entry has a specific class, the openatlas_class column +is used. Here the following classes can be entered: Place, +Feature, Stratigraphic unit, +Artifact, and Human remains. This is +case-insensitive. For an example, please see: example_place_hierarchy.csv

      -

      For questions about the correct place hierarchy structure, please see the -archaeological sub units at the OpenAtlas Model.

      +

      For questions about the correct place hierarchy structure, please have a +look at archaeological sub units at the OpenAtlas Model.

      Import options

        -
      • File - select the file you’ll want to import

      • -
      • Preview - if this option is selected, nothing will be imported and you see a preview

      • -
      • Check for duplicates - if selected, the chosen class e.g. person will be searched for already existing names. The search is not case-sensitive e.g. “King Arthur” would be found even it is spelled “KiNg ArThUr”. If duplicates are found a warning is printed but this doesn’t stop the import so check it before with the preview.

      • +
      • File - select a file you’ll want to import

      • +
      • Preview - if this option is selected, nothing will be imported and you +see a preview

      • +
      • Check for duplicates - if selected, the chosen class e.g. person will +be searched for already existing names. The search is not case-sensitive +e.g. “King Arthur” would be found even it is spelled “KiNg ArThUr”. If +duplicates are found, a warning is printed but doesn’t stop the import

      After the import

      -

      When the import went through, you’ll see a summary which data was imported (like the preview). -Also, you can browse the projects to see which imported entities are associated with them. -If you enabled the advanced layout you can also see in the detail view of an entity from which -project it was imported, which user did the import and the origin_id value.

      -

      Although the script makes a lot of validation checks it’s always a good idea to run -Data integrity checks after each import.

      +

      When the import went through, a summary which data was imported is shown. +You can also browse the projects to see which imported entities are associated +with them. +If advanced layout is enabled, the detail view of an entity shows from which +project the entity was imported, which user did the import and the +origin_id value.

      +

      It is always a good idea to run :doc:`/admin/data_integrity_checks` after +each import.

      diff --git a/openatlas/static/manual/admin/index.html b/openatlas/static/manual/admin/index.html index ae1adb6ad..f521e56b5 100644 --- a/openatlas/static/manual/admin/index.html +++ b/openatlas/static/manual/admin/index.html @@ -5,7 +5,7 @@ - Admin — OpenAtlas 8.7.0 documentation + Admin — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
      - 8.7.0 + 8.8.0
      @@ -165,8 +165,8 @@

      Admin

  • Import
      -
    • Preparations
    • -
    • Projects
    • +
    • Preparation
    • +
    • Project
    • Import class
    • Possible import fields
      • Alias
      • diff --git a/openatlas/static/manual/admin/mail.html b/openatlas/static/manual/admin/mail.html index 52c868922..5dfe4176c 100644 --- a/openatlas/static/manual/admin/mail.html +++ b/openatlas/static/manual/admin/mail.html @@ -5,7 +5,7 @@ - Mail — OpenAtlas 8.7.0 documentation + Mail — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
        - 8.7.0 + 8.8.0
        @@ -112,10 +112,10 @@

        Mail

        -

        After changes are made use the test function to ensure that users can reset +

        After changes are made, use the test function to ensure that users can reset their passwords.

          -
        • Email - if not checked all email functions are disabled

        • +
        • Email - if not checked, all email functions are disabled

        • Username - leave empty to send mails without login or set a password (MAIL_PASSWORD) in instance/production.py to send mails with authentication

        • Host - e.g. smtp.example.net

        • diff --git a/openatlas/static/manual/admin/map.html b/openatlas/static/manual/admin/map.html index 66b86bfcc..b5626edcb 100644 --- a/openatlas/static/manual/admin/map.html +++ b/openatlas/static/manual/admin/map.html @@ -5,7 +5,7 @@ - Map — OpenAtlas 8.7.0 documentation + Map — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
          - 8.7.0 + 8.8.0
          @@ -113,9 +113,11 @@

          Map

            -
          • Default map zoom - define the lowest zoom level to include all features on a Map view.

          • +
          • Default map zoom - define the lowest zoom level to include all +features on a Map view.

          • Max map zoom - adjust how far you can zoom into a Map

          • -
          • DisableClusteringAtZoom - at which zoom level clustering should be disabled

          • +
          • DisableClusteringAtZoom - defines at which zoom level clustering is +disabled

          • MaxClusterRadius - the maximal range of a cluster

          • GeoNames username - used to access GeoNames functions

          • GeoNames URL - used to access GeoNames functions

          • diff --git a/openatlas/static/manual/admin/modules.html b/openatlas/static/manual/admin/modules.html index d0d5991fa..ded0f1b23 100644 --- a/openatlas/static/manual/admin/modules.html +++ b/openatlas/static/manual/admin/modules.html @@ -5,7 +5,7 @@ - Modules — OpenAtlas 8.7.0 documentation + Modules — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            @@ -112,8 +112,9 @@

            Modules

            -

            Here you can set default values of modules for new users. Users can overwrite these in their -profile. Descriptions of modules are available at the Profile page.

            +

            Here you can set default values of modules for new users. Users can +adjust these via settings in their own profile. Descriptions of modules are +available at the Profile page.

            diff --git a/openatlas/static/manual/admin/user.html b/openatlas/static/manual/admin/user.html index 5d6876f04..c4fa9984f 100644 --- a/openatlas/static/manual/admin/user.html +++ b/openatlas/static/manual/admin/user.html @@ -5,7 +5,7 @@ - User — OpenAtlas 8.7.0 documentation + User — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            @@ -112,19 +112,24 @@

            User

            -

            In the overview users with group, email, created/last login date and newsletter subscription are -displayed. When viewing a user you can click on Activity to browse entity inserts, updates and -deletes of this user.

            -

            User can be added by admins or manager and a registration mail with account details can be sent by -the system if Send account information is checked.

            +

            In the overview users and information on their group, email, created/last +login date, and newsletter subscription are displayed. When viewing a user +you can click on Activity to browse entity inserts, updates, and deletes of +this user.

            +

            Users can be added by admins or manager and a registration mail with account +details can be sent by the system if Send account information is checked.

            Form fields

              -
            • Active - if not checked the user cannot log in anymore. Keeping inactive users can be useful to keep associated information e.g. about created and modified entities.

            • +
            • Active - if not checked the user cannot log in anymore. Keeping +inactive users saved in the system can be useful to keep associated +information e.g. about created and modified entities

            • Group - defines the access level of a user, see table below

            • -
            • Username - required to login and displayed in advanced view of created/modified entries

            • +
            • Username - required to login and displayed in advanced view of +created/modified entries

            • Email - required for e.g. resetting the password

            • -
            • Full name - optional but makes it easier for other to be identified. Can be edited in Profile.

            • +
            • Full name - optional but makes it easier for other to be identified. +Can be edited in Profile.

            • Info - a free text field for additional information

            diff --git a/openatlas/static/manual/admin/vocabs.html b/openatlas/static/manual/admin/vocabs.html index 7b128d3c4..38e0b070e 100644 --- a/openatlas/static/manual/admin/vocabs.html +++ b/openatlas/static/manual/admin/vocabs.html @@ -5,7 +5,7 @@ - Vocabs — OpenAtlas 8.7.0 documentation + Vocabs — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            @@ -112,35 +112,43 @@

            Vocabs

            -

            Available for admins and managers

            -

            The Vocabs import enables the import of controlled vocabularies -as custom types from a Skosmos service.

            -

            As default the ACDH-CH Skosmos service is selected.

            +

            Available for admins and managers only.

            +

            A Vocabs import allows for an import of a controlled vocabularies as +OpenAtlas custom types from a Skosmos service.

            +

            As default the ACDH-CH Skosmos service +is selected.

            Edit

            -

            Base URL - Enter a valid Skosmos service URL. -Please provide the trailing slash.

            -

            Endpoint - Enter the valid REST API endpoint.

            -

            User - Enter the username, if the service needs an authentication.

            -

            If an authentication is needed the password has to be provided within the instance/production.py

            +
              +
            • Base URL - Enter a valid Skosmos service URL. +Please provide the trailing slash

            • +
            • Endpoint - Enter a valid REST API endpoint

            • +
            • User - Enter a username, if the service needs an authentication

            • +
            +

            If an authentication is needed the password has to be provided within the +instance/production.py

            VOCABS_PW = ''

            Show vocabularies

            -

            Here all available vocabularies of the given service URL are displayed as table. The name is -linked to the vocabulary at the provided service.

            -

            You can choose to import the hierarchy or the collection of a vocabulary. For the difference please confer -https://www.w3.org/TR/skos-primer/.

            +

            All available vocabularies of the given service URL are displayed as table. +Each name is linked to the vocabulary at the provided service. +You can choose to import the hierarchy or the collection of a vocabulary. +For the difference please confer https://www.w3.org/TR/skos-primer/.

            To import a vocabulary, click either on hierarchy or groups.

            Import

            -

            Top concepts - Select top concepts to import them as custom hierarchy. Each child concept will -be imported as type in the conceptual order.

            -

            Classes - Choose to which classes the new types will be added to e.g. Artifact or Place.

            -

            Multiple - Decide if the type is single or multiple choice

            -

            Language - Decide what language is used. If a concept name is not available in the wanted language, -the preferred language of the vocabulary will be taken.

            +
              +
            • Top concepts - Select top concepts to import as custom hierarchy. +Each child concept will be imported as type in the conceptual order.

            • +
            • Classes - Choose to which classes the new types will be added to, e.g. +Artifact or Place.

            • +
            • Multiple - Decide if the type is single or multiple choice

            • +
            • Language - Decide what language is used. If a concept name is not +available in the choosen language, the preferred language of the vocabulary +will be used

            • +
            diff --git a/openatlas/static/manual/entity/actor.html b/openatlas/static/manual/entity/actor.html index 6cb24256f..a1f3d19bd 100644 --- a/openatlas/static/manual/entity/actor.html +++ b/openatlas/static/manual/entity/actor.html @@ -5,7 +5,7 @@ - Actor — OpenAtlas 8.7.0 documentation + Actor — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/entity/artifact.html b/openatlas/static/manual/entity/artifact.html index df7e3cd33..e6aa05f92 100644 --- a/openatlas/static/manual/entity/artifact.html +++ b/openatlas/static/manual/entity/artifact.html @@ -5,7 +5,7 @@ - Artifact — OpenAtlas 8.7.0 documentation + Artifact — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/entity/event.html b/openatlas/static/manual/entity/event.html index b48f44c66..67919d9c3 100644 --- a/openatlas/static/manual/entity/event.html +++ b/openatlas/static/manual/entity/event.html @@ -5,7 +5,7 @@ - Event — OpenAtlas 8.7.0 documentation + Event — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/entity/feature.html b/openatlas/static/manual/entity/feature.html index 9147e655a..183e136d2 100644 --- a/openatlas/static/manual/entity/feature.html +++ b/openatlas/static/manual/entity/feature.html @@ -5,7 +5,7 @@ - Feature — OpenAtlas 8.7.0 documentation + Feature — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/entity/file.html b/openatlas/static/manual/entity/file.html index 8b345fca6..860d2fca5 100644 --- a/openatlas/static/manual/entity/file.html +++ b/openatlas/static/manual/entity/file.html @@ -5,7 +5,7 @@ - File — OpenAtlas 8.7.0 documentation + File — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/entity/human_remains.html b/openatlas/static/manual/entity/human_remains.html index 8efeec109..dbaa1a035 100644 --- a/openatlas/static/manual/entity/human_remains.html +++ b/openatlas/static/manual/entity/human_remains.html @@ -5,7 +5,7 @@ - Human remains — OpenAtlas 8.7.0 documentation + Human remains — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/entity/index.html b/openatlas/static/manual/entity/index.html index 508525344..2fb6e0054 100644 --- a/openatlas/static/manual/entity/index.html +++ b/openatlas/static/manual/entity/index.html @@ -5,7 +5,7 @@ - Entity — OpenAtlas 8.7.0 documentation + Entity — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/entity/navigation.html b/openatlas/static/manual/entity/navigation.html index 3a2da5e9b..17f02cfa0 100644 --- a/openatlas/static/manual/entity/navigation.html +++ b/openatlas/static/manual/entity/navigation.html @@ -5,7 +5,7 @@ - <no title> — OpenAtlas 8.7.0 documentation + <no title> — OpenAtlas 8.8.0 documentation @@ -33,7 +33,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/entity/place.html b/openatlas/static/manual/entity/place.html index 3cec13b5a..0f1df82b5 100644 --- a/openatlas/static/manual/entity/place.html +++ b/openatlas/static/manual/entity/place.html @@ -5,7 +5,7 @@ - Place — OpenAtlas 8.7.0 documentation + Place — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/entity/reference.html b/openatlas/static/manual/entity/reference.html index ae8999100..87451ae76 100644 --- a/openatlas/static/manual/entity/reference.html +++ b/openatlas/static/manual/entity/reference.html @@ -5,7 +5,7 @@ - Reference — OpenAtlas 8.7.0 documentation + Reference — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/entity/reference_system.html b/openatlas/static/manual/entity/reference_system.html index 0b6f2702f..9647c47a2 100644 --- a/openatlas/static/manual/entity/reference_system.html +++ b/openatlas/static/manual/entity/reference_system.html @@ -5,7 +5,7 @@ - Reference System — OpenAtlas 8.7.0 documentation + Reference System — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/entity/source.html b/openatlas/static/manual/entity/source.html index fc430145d..9867b007b 100644 --- a/openatlas/static/manual/entity/source.html +++ b/openatlas/static/manual/entity/source.html @@ -5,7 +5,7 @@ - Source — OpenAtlas 8.7.0 documentation + Source — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/entity/stratigraphic_unit.html b/openatlas/static/manual/entity/stratigraphic_unit.html index 5ec5ef7fe..e8b898c85 100644 --- a/openatlas/static/manual/entity/stratigraphic_unit.html +++ b/openatlas/static/manual/entity/stratigraphic_unit.html @@ -5,7 +5,7 @@ - Stratigraphic unit — OpenAtlas 8.7.0 documentation + Stratigraphic unit — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/entity/type.html b/openatlas/static/manual/entity/type.html index bee90b688..337960c0b 100644 --- a/openatlas/static/manual/entity/type.html +++ b/openatlas/static/manual/entity/type.html @@ -5,7 +5,7 @@ - Type — OpenAtlas 8.7.0 documentation + Type — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/examples/archaeological_data.html b/openatlas/static/manual/examples/archaeological_data.html index 4f87b0a3d..89df78364 100644 --- a/openatlas/static/manual/examples/archaeological_data.html +++ b/openatlas/static/manual/examples/archaeological_data.html @@ -5,7 +5,7 @@ - Archaeological data — OpenAtlas 8.7.0 documentation + Archaeological data — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/examples/artifacts.html b/openatlas/static/manual/examples/artifacts.html index 49a4ab56e..a34042308 100644 --- a/openatlas/static/manual/examples/artifacts.html +++ b/openatlas/static/manual/examples/artifacts.html @@ -5,7 +5,7 @@ - Artifacts — OpenAtlas 8.7.0 documentation + Artifacts — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/examples/index.html b/openatlas/static/manual/examples/index.html index f5bf88756..6afd06535 100644 --- a/openatlas/static/manual/examples/index.html +++ b/openatlas/static/manual/examples/index.html @@ -5,7 +5,7 @@ - Examples — OpenAtlas 8.7.0 documentation + Examples — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/examples/journey.html b/openatlas/static/manual/examples/journey.html index 9b027798b..f4df5635a 100644 --- a/openatlas/static/manual/examples/journey.html +++ b/openatlas/static/manual/examples/journey.html @@ -5,7 +5,7 @@ - Journey — OpenAtlas 8.7.0 documentation + Journey — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/examples/letters.html b/openatlas/static/manual/examples/letters.html index 3ec73b176..4a9195372 100644 --- a/openatlas/static/manual/examples/letters.html +++ b/openatlas/static/manual/examples/letters.html @@ -5,7 +5,7 @@ - Letters — OpenAtlas 8.7.0 documentation + Letters — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/examples/move_event.html b/openatlas/static/manual/examples/move_event.html index 4b5bbe2fb..1d52af494 100644 --- a/openatlas/static/manual/examples/move_event.html +++ b/openatlas/static/manual/examples/move_event.html @@ -5,7 +5,7 @@ - Move events — OpenAtlas 8.7.0 documentation + Move events — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/examples/places.html b/openatlas/static/manual/examples/places.html index dca43b101..6435f59ee 100644 --- a/openatlas/static/manual/examples/places.html +++ b/openatlas/static/manual/examples/places.html @@ -5,7 +5,7 @@ - Places — OpenAtlas 8.7.0 documentation + Places — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/examples/profession.html b/openatlas/static/manual/examples/profession.html index f5ded83ec..0e2cf44eb 100644 --- a/openatlas/static/manual/examples/profession.html +++ b/openatlas/static/manual/examples/profession.html @@ -5,7 +5,7 @@ - Profession — OpenAtlas 8.7.0 documentation + Profession — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/examples/reference_systems.html b/openatlas/static/manual/examples/reference_systems.html index 915c082d2..5bf669b0a 100644 --- a/openatlas/static/manual/examples/reference_systems.html +++ b/openatlas/static/manual/examples/reference_systems.html @@ -5,7 +5,7 @@ - References Systems — OpenAtlas 8.7.0 documentation + References Systems — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/examples/time_spans.html b/openatlas/static/manual/examples/time_spans.html index fe6909624..d73eb3a7a 100644 --- a/openatlas/static/manual/examples/time_spans.html +++ b/openatlas/static/manual/examples/time_spans.html @@ -5,7 +5,7 @@ - Time Spans — OpenAtlas 8.7.0 documentation + Time Spans — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/examples/types.html b/openatlas/static/manual/examples/types.html index 216878d1e..c337d8751 100644 --- a/openatlas/static/manual/examples/types.html +++ b/openatlas/static/manual/examples/types.html @@ -5,7 +5,7 @@ - Types — OpenAtlas 8.7.0 documentation + Types — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/faq.html b/openatlas/static/manual/faq.html index c18ae438d..660e7ac6d 100644 --- a/openatlas/static/manual/faq.html +++ b/openatlas/static/manual/faq.html @@ -5,7 +5,7 @@ - FAQ — OpenAtlas 8.7.0 documentation + FAQ — OpenAtlas 8.8.0 documentation @@ -34,7 +34,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/features.html b/openatlas/static/manual/features.html index 0e9ccd488..1766c875e 100644 --- a/openatlas/static/manual/features.html +++ b/openatlas/static/manual/features.html @@ -5,7 +5,7 @@ - Features — OpenAtlas 8.7.0 documentation + Features — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/index.html b/openatlas/static/manual/index.html index f69f58008..fadd24695 100644 --- a/openatlas/static/manual/index.html +++ b/openatlas/static/manual/index.html @@ -5,7 +5,7 @@ - OpenAtlas manual — OpenAtlas 8.7.0 documentation + OpenAtlas manual — OpenAtlas 8.8.0 documentation @@ -34,7 +34,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/model/cidoc_crm.html b/openatlas/static/manual/model/cidoc_crm.html index 487276ec4..2a360fc06 100644 --- a/openatlas/static/manual/model/cidoc_crm.html +++ b/openatlas/static/manual/model/cidoc_crm.html @@ -5,7 +5,7 @@ - CIDOC CRM — OpenAtlas 8.7.0 documentation + CIDOC CRM — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/model/index.html b/openatlas/static/manual/model/index.html index bff1c218c..e2e0885ee 100644 --- a/openatlas/static/manual/model/index.html +++ b/openatlas/static/manual/model/index.html @@ -5,7 +5,7 @@ - Model — OpenAtlas 8.7.0 documentation + Model — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/model/link_checker.html b/openatlas/static/manual/model/link_checker.html index d5c1cba11..eda5b9b81 100644 --- a/openatlas/static/manual/model/link_checker.html +++ b/openatlas/static/manual/model/link_checker.html @@ -5,7 +5,7 @@ - Link checker — OpenAtlas 8.7.0 documentation + Link checker — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/model/openatlas_classes.html b/openatlas/static/manual/model/openatlas_classes.html index 4783f4679..fddd09160 100644 --- a/openatlas/static/manual/model/openatlas_classes.html +++ b/openatlas/static/manual/model/openatlas_classes.html @@ -5,7 +5,7 @@ - OpenAtlas classes — OpenAtlas 8.7.0 documentation + OpenAtlas classes — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/model/openatlas_shortcuts.html b/openatlas/static/manual/model/openatlas_shortcuts.html index f08db3944..90edfd00b 100644 --- a/openatlas/static/manual/model/openatlas_shortcuts.html +++ b/openatlas/static/manual/model/openatlas_shortcuts.html @@ -5,7 +5,7 @@ - OpenAtlas shortcuts — OpenAtlas 8.7.0 documentation + OpenAtlas shortcuts — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/model/references.html b/openatlas/static/manual/model/references.html index 2ca3de901..d9c2cbb49 100644 --- a/openatlas/static/manual/model/references.html +++ b/openatlas/static/manual/model/references.html @@ -5,7 +5,7 @@ - References — OpenAtlas 8.7.0 documentation + References — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/objects.inv b/openatlas/static/manual/objects.inv index 377d9e0bdffef997bfe91a66959bde332f849709..ca9298c6d89c64278531a33e9b71de9d488bb88a 100644 GIT binary patch delta 12 Tcmcb^eTRF3J)^}&hdHbOALs;W delta 12 Tcmcb^eTRF3J)`+XhdHbOAL9gQ diff --git a/openatlas/static/manual/overview.html b/openatlas/static/manual/overview.html index f7fa338c8..6922765dc 100644 --- a/openatlas/static/manual/overview.html +++ b/openatlas/static/manual/overview.html @@ -5,7 +5,7 @@ - Overview — OpenAtlas 8.7.0 documentation + Overview — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/search.html b/openatlas/static/manual/search.html index a84004ae5..db2b591e9 100644 --- a/openatlas/static/manual/search.html +++ b/openatlas/static/manual/search.html @@ -4,7 +4,7 @@ - Search — OpenAtlas 8.7.0 documentation + Search — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/searchindex.js b/openatlas/static/manual/searchindex.js index 4c637e374..9146ad684 100644 --- a/openatlas/static/manual/searchindex.js +++ b/openatlas/static/manual/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["admin/api", "admin/arche", "admin/content", "admin/data_integrity_checks", "admin/execute_sql", "admin/export", "admin/frontend", "admin/general", "admin/iiif", "admin/import", "admin/index", "admin/mail", "admin/map", "admin/modules", "admin/user", "admin/vocabs", "entity/actor", "entity/artifact", "entity/event", "entity/feature", "entity/file", "entity/human_remains", "entity/index", "entity/navigation", "entity/place", "entity/reference", "entity/reference_system", "entity/source", "entity/stratigraphic_unit", "entity/type", "examples/archaeological_data", "examples/artifacts", "examples/index", "examples/journey", "examples/letters", "examples/move_event", "examples/places", "examples/profession", "examples/reference_systems", "examples/time_spans", "examples/types", "faq", "features", "index", "model/cidoc_crm", "model/index", "model/link_checker", "model/openatlas_classes", "model/openatlas_shortcuts", "model/references", "overview", "technical/api", "technical/application_structure", "technical/database_structure", "tools/anthropological_analyses", "tools/image_annotation", "tools/index", "tools/map", "tools/network", "tools/notes", "tools/profile", "tools/radiocarbon_dating", "tools/search", "troubleshooting/display", "troubleshooting/error_codes", "troubleshooting/index", "troubleshooting/login", "ui/alias", "ui/date", "ui/description", "ui/form", "ui/menu", "ui/name", "ui/table"], "filenames": ["admin/api.rst", "admin/arche.rst", "admin/content.rst", "admin/data_integrity_checks.rst", "admin/execute_sql.rst", "admin/export.rst", "admin/frontend.rst", "admin/general.rst", "admin/iiif.rst", "admin/import.rst", "admin/index.rst", "admin/mail.rst", "admin/map.rst", "admin/modules.rst", "admin/user.rst", "admin/vocabs.rst", "entity/actor.rst", "entity/artifact.rst", "entity/event.rst", "entity/feature.rst", "entity/file.rst", "entity/human_remains.rst", "entity/index.rst", "entity/navigation.rst", "entity/place.rst", "entity/reference.rst", "entity/reference_system.rst", "entity/source.rst", "entity/stratigraphic_unit.rst", "entity/type.rst", "examples/archaeological_data.rst", "examples/artifacts.rst", "examples/index.rst", "examples/journey.rst", "examples/letters.rst", "examples/move_event.rst", "examples/places.rst", "examples/profession.rst", "examples/reference_systems.rst", "examples/time_spans.rst", "examples/types.rst", "faq.rst", "features.rst", "index.rst", "model/cidoc_crm.rst", "model/index.rst", "model/link_checker.rst", "model/openatlas_classes.rst", "model/openatlas_shortcuts.rst", "model/references.rst", "overview.rst", "technical/api.rst", "technical/application_structure.rst", "technical/database_structure.rst", "tools/anthropological_analyses.rst", "tools/image_annotation.rst", "tools/index.rst", "tools/map.rst", "tools/network.rst", "tools/notes.rst", "tools/profile.rst", "tools/radiocarbon_dating.rst", "tools/search.rst", "troubleshooting/display.rst", "troubleshooting/error_codes.rst", "troubleshooting/index.rst", "troubleshooting/login.rst", "ui/alias.rst", "ui/date.rst", "ui/description.rst", "ui/form.rst", "ui/menu.rst", "ui/name.rst", "ui/table.rst"], "titles": ["API", "ARCHE", "Content", "Data integrity checks", "Execute SQL", "Export", "Frontend", "General", "IIIF", "Import", "Admin", "Mail", "Map", "Modules", "User", "Vocabs", "Actor", "Artifact", "Event", "Feature", "File", "Human remains", "Entity", "<no title>", "Place", "Reference", "Reference System", "Source", "Stratigraphic unit", "Type", "Archaeological data", "Artifacts", "Examples", "Journey", "Letters", "Move events", "Places", "Profession", "References Systems", "Time Spans", "Types", "FAQ", "Features", "OpenAtlas manual", "CIDOC CRM", "Model", "Link checker", "OpenAtlas classes", "OpenAtlas shortcuts", "References", "Overview", "API", "Application Structure", "Database Structure", "Anthropological Analyses", "Image annotation", "Tools", "Map", "Network visualization", "Notes", "Profile", "Radiocarbon Dating", "Search", "Display Errors", "Error Codes", "Troubleshooting", "Login", "Alias", "Date", "Description", "Form", "Menu", "Name", "Table"], "terms": {"descript": [0, 1, 9, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 40, 41, 44, 48, 49, 51, 55, 57, 62, 70, 73], "public": [0, 8, 26, 43, 49, 51, 53, 59], "default": [0, 3, 7, 8, 9, 12, 13, 14, 15, 20, 29, 38, 39, 52, 57, 58, 59, 60], "off": [0, 73], "If": [0, 1, 3, 4, 9, 15, 17, 20, 29, 30, 31, 33, 34, 35, 36, 38, 39, 41, 49, 51, 57, 58, 62, 66, 68], "you": [0, 3, 4, 8, 9, 12, 13, 14, 15, 17, 20, 22, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 51, 52, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 71, 73], "turn": [0, 3, 39, 66, 68], "link": [0, 1, 2, 5, 6, 9, 10, 15, 22, 26, 30, 34, 35, 36, 37, 38, 41, 42, 43, 44, 45, 48, 49, 50, 51, 53, 55, 57, 58, 60, 63, 64, 66, 71], "file": [0, 1, 5, 8, 9, 10, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 35, 42, 43, 47, 52, 55, 57, 60], "licens": [0, 1, 20, 26, 41], "can": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 22, 26, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 55, 57, 58, 59, 60, 61, 62, 63, 66, 67, 68, 69, 71, 73], "access": [0, 4, 6, 8, 12, 14, 16, 17, 18, 20, 23, 24, 25, 26, 27, 29, 40, 42, 43, 54, 60, 61, 64], "even": [0, 9, 29, 60, 62], "without": [0, 8, 9, 10, 11, 29, 36, 41, 44, 45, 51, 58, 62], "log": [0, 2, 7, 14, 50, 60, 63], "thi": [0, 1, 3, 4, 5, 6, 8, 9, 14, 17, 20, 22, 24, 26, 29, 30, 31, 33, 34, 35, 36, 38, 39, 41, 42, 43, 44, 45, 47, 48, 49, 51, 52, 54, 55, 57, 58, 61, 62, 63, 64, 65, 68], "might": [0, 3, 20, 35, 39, 41], "us": [0, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14, 15, 18, 19, 20, 21, 24, 26, 28, 29, 30, 31, 33, 34, 35, 37, 38, 39, 40, 41, 42, 44, 45, 47, 48, 49, 51, 52, 53, 54, 55, 57, 62, 63, 64, 67, 68, 69, 70, 72, 73], "want": [0, 3, 9, 15, 29, 30, 31, 39, 40, 41, 58], "data": [0, 4, 5, 9, 10, 14, 19, 21, 22, 24, 26, 28, 29, 32, 33, 34, 35, 36, 38, 39, 40, 43, 44, 45, 48, 51, 53, 57, 58, 59, 61, 62, 69, 70], "open": [0, 8, 26, 34, 35, 38, 41, 42, 43, 51, 55, 57], "anywai": [0, 44], "allow": [0, 3, 18, 20, 29, 39, 41, 42, 51, 55, 62, 72], "other": [0, 3, 9, 14, 16, 18, 20, 24, 26, 30, 31, 33, 35, 36, 38, 41, 42, 44, 51, 52, 58, 59, 60], "system": [0, 3, 5, 10, 14, 16, 17, 18, 20, 21, 22, 24, 29, 32, 41, 42, 43, 44, 45, 53, 68, 69], "note": [0, 8, 21, 30, 31, 33, 35, 36, 38, 39, 40, 42, 43, 44, 48, 50, 51, 53, 56], "The": [0, 1, 3, 5, 8, 9, 11, 15, 18, 20, 22, 26, 29, 30, 31, 32, 33, 34, 36, 37, 39, 41, 42, 44, 45, 47, 48, 49, 50, 51, 52, 54, 55, 57, 64, 71, 72], "still": [0, 18, 41, 51, 60], "request": [0, 7, 51, 64, 66], "from": [0, 3, 9, 10, 11, 15, 18, 20, 22, 24, 26, 30, 31, 33, 34, 35, 36, 38, 39, 41, 42, 48, 49, 51, 52, 54, 57, 60, 62, 68], "browser": [0, 7, 20, 51, 52, 58], "where": [0, 3, 16, 18, 22, 27, 31, 33, 35, 36, 38, 41, 44, 45, 49, 51, 57, 58, 62, 68], "user": [0, 1, 3, 5, 7, 9, 10, 11, 13, 15, 26, 29, 30, 33, 34, 35, 36, 38, 40, 45, 47, 49, 51, 52, 53, 59, 60, 64, 71], "i": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 54, 55, 57, 58, 59, 60, 61, 62, 63, 68, 72], "ip": 0, "comput": [0, 20], "whitelist": 0, "Be": [1, 5, 8, 20, 29, 41, 51, 55, 58], "awar": [1, 5, 8, 20, 41, 51, 55, 58], "featur": [1, 3, 4, 9, 12, 17, 21, 22, 24, 26, 28, 29, 31, 39, 43, 47, 54, 55, 60, 63], "onli": [1, 3, 4, 7, 8, 9, 14, 16, 19, 24, 26, 28, 29, 38, 39, 40, 41, 45, 48, 51, 55, 57, 58, 59, 61, 62, 64, 68], "usabl": [1, 26, 51, 69], "specif": [1, 7, 9, 20, 26, 29, 32, 37, 40, 41, 42, 43, 44, 48, 51, 53, 57, 66], "dataset": [1, 49], "A": [1, 3, 4, 5, 9, 19, 20, 21, 24, 28, 29, 30, 31, 35, 36, 40, 41, 44, 49, 50, 51, 52, 63, 69], "resourc": [1, 38, 49], "centr": 1, "human": [1, 9, 16, 17, 22, 24, 28, 31, 42, 43, 44, 47, 51, 54], "servic": [1, 15, 26, 42], "aim": 1, "offer": [1, 9, 42, 55], "stabl": [1, 47, 51], "persist": [1, 47], "host": [1, 11, 26], "well": [1, 21, 24, 30, 36, 39, 40, 41, 42, 44, 71], "dissemin": 1, "digit": [1, 8, 22, 39, 42, 44, 49], "research": [1, 3, 29, 42, 61], "In": [1, 3, 6, 8, 9, 14, 19, 20, 21, 24, 25, 28, 29, 30, 33, 34, 36, 37, 39, 41, 42, 47, 49, 51, 54, 55, 56, 61, 63, 65], "order": [1, 15, 30, 33, 35, 42, 48, 49], "import": [1, 3, 10, 14, 34, 36, 41, 42, 43, 44, 45, 52, 53, 56, 60, 72], "openatla": [1, 3, 5, 6, 8, 9, 18, 19, 20, 21, 24, 26, 27, 28, 30, 35, 37, 38, 41, 42, 44, 45, 49, 51, 52, 53, 63, 68], "chang": [1, 7, 11, 18, 20, 26, 29, 30, 31, 33, 36, 40, 41, 51, 56, 57, 58], "instanc": [1, 8, 11, 15, 20, 38, 42, 44, 48, 51, 52, 53], "product": [1, 11, 15, 17, 20, 21, 31, 51, 54], "py": [1, 11, 15, 20, 44, 51, 52], "ar": [1, 2, 3, 4, 5, 7, 8, 9, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 57, 58, 59, 60, 62, 63, 64, 66, 68, 69, 70, 72, 73], "need": [1, 9, 15, 29, 31, 41, 45, 49, 51, 52, 57], "ask": [1, 22, 41], "your": [1, 4, 20, 32, 35, 36, 38, 39, 41, 50, 51, 57, 58, 59, 60, 64, 66, 73], "administr": [1, 9, 36], "further": [1, 30, 31, 34, 36, 38, 40, 47, 49, 51, 57], "detail": [1, 3, 6, 7, 9, 14, 16, 17, 18, 20, 22, 23, 24, 25, 26, 27, 29, 40, 41, 42, 44, 45, 51, 55, 58, 68], "id": [1, 6, 9, 36, 38, 49, 51, 57, 61, 64], "0": [1, 20, 39, 41, 51, 54, 68], "top": [1, 2, 15, 41, 44, 49, 57, 58, 60, 63, 71, 73], "collect": [1, 15, 39], "project": [1, 3, 6, 10, 20, 26, 32, 39, 40, 42, 43, 53, 60, 66], "acdh": [1, 15], "topcollect": 1, "url": [1, 6, 8, 12, 15, 20, 25, 26, 38, 41, 44, 49, 52], "http": [1, 6, 8, 15, 26, 38, 44, 51], "curat": 1, "dev": 1, "oeaw": 1, "ac": 1, "base": [1, 15, 21, 26, 36, 38, 42, 45, 48, 51, 53, 57, 68], "get": [1, 3, 8, 9, 33, 36, 37, 38, 44, 59, 66], "button": [1, 3, 5, 16, 17, 18, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 51, 54, 55, 57, 58, 60, 61, 66, 71, 73], "displai": [1, 2, 4, 6, 7, 9, 11, 14, 15, 20, 25, 26, 29, 36, 38, 40, 43, 45, 47, 50, 51, 52, 56, 59, 61, 65, 73], "admin": [1, 4, 5, 9, 14, 15, 20, 26, 38, 43, 51, 57, 59, 60], "menu": [1, 8, 22, 27, 29, 30, 31, 33, 34, 35, 36, 40], "abov": [1, 3, 31, 35, 42, 60, 63], "provid": [1, 8, 9, 15, 25, 26, 39, 41, 51, 54, 60, 61, 62, 63, 64], "click": [1, 3, 4, 5, 14, 15, 16, 17, 18, 20, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 50, 54, 55, 57, 60, 66, 68, 73], "section": [1, 39, 51], "belong": [1, 24], "manag": [1, 3, 5, 9, 14, 15, 26, 29, 38, 43, 52, 59, 60, 66, 68], "group": [1, 9, 10, 15, 16, 18, 26, 29, 31, 33, 35, 36, 37, 38, 40, 41, 42, 53, 55, 64], "call": [1, 19, 41, 51, 52, 54], "list": [1, 3, 5, 9, 16, 17, 18, 20, 23, 24, 25, 26, 27, 30, 31, 33, 34, 35, 36, 38, 41, 42, 49, 50, 51, 55], "tabl": [1, 7, 14, 15, 16, 17, 18, 20, 23, 24, 25, 27, 29, 42, 48, 49, 50, 60, 72], "artifact": [1, 3, 9, 15, 16, 18, 21, 22, 24, 27, 28, 29, 32, 33, 35, 39, 40, 43, 55, 71], "which": [1, 3, 5, 8, 9, 12, 15, 17, 18, 19, 20, 21, 24, 25, 28, 29, 33, 35, 36, 38, 39, 40, 41, 42, 44, 47, 49, 51, 52, 55, 57, 58, 62, 63, 66, 68, 71, 72], "wa": [1, 9, 16, 22, 25, 26, 31, 35, 36, 39, 45, 48, 51, 52, 55, 60, 66, 68], "shown": [1, 3, 4, 5, 6, 9, 20, 25, 26, 29, 36, 38, 41, 58, 60, 68], "all": [1, 5, 9, 11, 12, 14, 15, 20, 30, 31, 33, 34, 36, 38, 39, 40, 41, 44, 47, 48, 49, 51, 52, 60, 63, 69], "metadata": 1, "gather": 1, "exif": 1, "endpoint": [1, 15, 43], "first": [1, 3, 4, 9, 11, 20, 21, 22, 30, 31, 36, 39, 42, 51, 68], "imag": [1, 7, 8, 30, 31, 41, 43, 49, 52, 53, 56, 57, 58, 60], "2_jpg": 1, "addition": [1, 35, 62], "correspond": [1, 3, 8, 26, 29, 36, 38, 39, 47, 60], "png": [1, 8, 20, 58], "4_orthophoto": 1, "taken": [1, 15, 48], "necessari": [1, 20, 30, 38, 40, 41, 49, 61], "new": [1, 9, 13, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 27, 28, 29, 33, 34, 37, 41, 55, 56, 60, 66], "person": [1, 3, 9, 16, 18, 22, 26, 31, 33, 34, 35, 37, 41, 42, 49, 55, 59, 60, 62], "etc": [1, 19, 21, 24, 28, 30, 37, 45, 49, 51, 52, 71], "ad": [1, 14, 15, 17, 18, 21, 26, 29, 31, 35, 38, 39, 40, 43, 51, 55, 56, 59, 61, 62], "dure": [1, 31, 45], "process": [1, 5, 7, 20, 41, 52], "custom": [1, 2, 5, 9, 14, 15, 20, 30, 40, 43], "hierarchi": [1, 5, 10, 15, 18, 24, 29], "relev": [1, 30], "actor": [1, 17, 18, 20, 21, 22, 24, 25, 27, 29, 31, 34, 35, 37, 39, 43, 44, 48, 60, 67, 68], "e21": [1, 16, 49], "involv": [1, 10, 30, 31, 33, 34], "e65": [1, 18], "creation": [1, 7, 24, 30, 34, 38, 40], "p": [1, 44], "cidoc_ent": 1, "e12": [1, 18, 48], "event": [1, 3, 16, 17, 19, 20, 21, 22, 24, 25, 27, 28, 29, 30, 32, 39, 43, 48], "addit": [1, 14, 30, 33, 36, 38, 39, 41, 42, 51, 54, 59, 68, 69], "copyright": [1, 49], "name": [1, 5, 7, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 38, 39, 40, 41, 44, 47, 48, 49, 60, 62, 70, 73], "e22": [1, 17, 48], "made": [1, 11, 17, 26, 31, 33, 36, 40, 41, 47, 52], "object": [1, 8, 17, 21, 27, 31, 34, 36, 42, 45, 47, 49, 57], "graffito": 1, "iptc": 1, "objectnam": 1, "xmp": 1, "p67": [1, 49], "e32": [1, 26, 49], "e53": [1, 24, 48], "place": [1, 3, 10, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 47, 48, 49, 51, 57, 60, 62, 63, 67, 71], "locat": [1, 16, 18, 19, 24, 28, 34, 35, 36, 42, 44, 51, 52, 57, 66], "p53": 1, "gpslatitud": 1, "gpslongitud": 1, "date": [1, 5, 10, 14, 16, 17, 18, 19, 21, 24, 28, 29, 30, 31, 33, 34, 35, 36, 37, 40, 43, 56, 60, 62, 63, 70], "created": 1, "p11": [1, 44, 48], "p108": 1, "p14": 1, "p92": [1, 48], "e31": [1, 20, 25, 47, 49], "document": [1, 9, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 31, 33, 47, 48, 49, 51, 67, 69], "p2": [1, 44, 48], "artist": 1, "text": [2, 5, 9, 14, 25, 27, 29, 31, 33, 34, 35, 36, 38, 39, 40, 43, 55, 57, 62, 68], "avail": [2, 4, 5, 8, 9, 13, 15, 16, 26, 30, 34, 35, 36, 37, 38, 40, 42, 43, 44, 47, 49, 51, 57, 58, 62, 73], "languag": [2, 7, 15, 27, 36, 60, 71], "here": [2, 3, 9, 13, 15, 17, 20, 21, 24, 29, 31, 32, 33, 35, 36, 38, 39, 40, 41, 42, 44, 45, 47, 52, 55, 60, 63, 64, 65, 68], "intro": 2, "start": [2, 3, 5, 18, 26, 33, 34, 35, 36, 38, 39, 43, 45, 63, 71], "page": [2, 4, 9, 13, 16, 17, 18, 20, 23, 24, 25, 26, 27, 31, 35, 38, 39, 40, 44, 45, 49, 50, 51, 54, 58, 60, 63, 64, 71, 73], "befor": [2, 3, 9, 20, 30, 34, 39, 51, 58, 68], "contact": [2, 11, 66], "site": [2, 6, 7, 19, 20, 26, 31, 41, 51, 55, 59, 60, 63, 64], "e": [2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 48, 49, 51, 52, 53, 55, 57, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 72], "g": [2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 48, 49, 51, 52, 53, 55, 57, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 72], "inform": [2, 14, 17, 18, 20, 21, 22, 24, 26, 29, 30, 31, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 49, 51, 52, 54, 57, 60, 61, 68, 69], "websit": [2, 6, 25, 26, 38, 43, 52, 53], "maintain": [2, 42, 45], "legal": 2, "notic": [2, 7, 51], "about": [2, 4, 9, 14, 26, 35, 36, 41, 43, 68], "institut": [2, 16, 37], "citat": [2, 30], "exampl": [2, 5, 6, 9, 11, 18, 21, 22, 24, 26, 27, 28, 29, 31, 34, 35, 36, 38, 39, 42, 43, 47, 48, 49, 51, 52, 57, 68], "under": [2, 25, 26, 36, 38, 51, 66], "form": [2, 10, 11, 26, 33, 35, 36, 37, 38, 39, 40, 41, 45, 47, 51, 52, 55, 60, 61, 68], "insert": [2, 4, 14, 25, 30, 31, 33, 34, 35, 36, 38, 40, 57, 60], "updat": [2, 3, 4, 9, 14, 25, 26, 29, 57, 60], "an": [2, 3, 4, 5, 6, 8, 9, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 36, 37, 38, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 55, 57, 58, 59, 60, 61, 64, 68, 70, 72], "edit": [2, 10, 14, 16, 17, 18, 19, 20, 23, 24, 25, 26, 27, 28, 29, 31, 36, 37, 38, 39, 40, 42, 45, 47, 55, 60, 61, 62, 64], "bibliographi": [2, 25, 31, 47, 49], "cogwheel": 2, "icon": [2, 20, 26, 29, 57, 60], "right": [2, 9, 29, 49, 51, 57, 58, 60, 71, 72, 73], "corner": [2, 57, 71], "thei": [2, 3, 9, 20, 21, 22, 26, 28, 29, 33, 34, 40, 41, 44, 47, 49, 51, 54, 57, 59, 62, 63, 72], "contain": [2, 5, 9, 26, 27, 28, 49, 52, 62, 71, 73], "qualiti": [3, 8, 29, 42], "veri": [3, 4, 9, 24, 32, 41, 63], "u": [3, 41, 64], "although": [3, 9, 41], "ultim": 3, "respons": [3, 20, 41, 51], "li": [3, 39], "editor": [3, 14, 20, 29, 40, 57, 60], "we": [3, 9, 41, 44, 45, 63], "take": [3, 4, 5, 9, 18, 26, 54], "great": 3, "care": [3, 29], "avoid": [3, 41, 47], "enter": [3, 7, 9, 15, 16, 17, 18, 20, 21, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 42, 43, 50, 51, 55, 57, 60, 66, 68], "inconsist": 3, "technic": [3, 41, 44], "level": [3, 7, 12, 14, 30, 42, 49, 58, 60, 61], "interfac": [3, 29, 30, 45, 47, 51, 60, 64, 71], "possibl": [3, 10, 18, 20, 24, 26, 29, 31, 33, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 49, 51, 54, 57, 61, 71], "begin": [3, 4, 5, 9, 16, 31, 34, 39, 48, 62, 68], "later": [3, 9, 30, 31, 41], "than": [3, 9, 24, 29, 31, 41, 58], "end": [3, 6, 9, 16, 33, 34, 35, 36, 39, 44, 48, 51, 62, 68], "nevertheless": [3, 44, 45], "mistak": [3, 66], "happen": [3, 33, 68], "applic": [3, 4, 26, 31, 38, 40, 42, 43, 45, 47, 51, 57], "also": [3, 8, 9, 11, 20, 26, 29, 30, 31, 33, 36, 38, 39, 40, 41, 42, 44, 45, 48, 49, 55, 58, 62, 66, 71], "when": [3, 5, 9, 14, 16, 17, 18, 19, 21, 24, 25, 26, 28, 29, 31, 34, 36, 38, 40, 41, 44, 50, 51, 57, 58, 59, 60, 62, 66, 68], "delet": [3, 4, 5, 14, 16, 17, 18, 20, 23, 24, 25, 26, 27, 29, 36, 55, 59], "outsid": 3, "becaus": [3, 4, 20, 24, 26, 41, 44, 62, 63], "implement": [3, 41, 42, 49], "function": [3, 4, 9, 11, 12, 26, 36, 37, 42, 49, 52, 53], "describ": [3, 30, 31, 33, 34, 36, 37, 51], "below": [3, 4, 14, 30, 31, 37, 42, 45, 52, 55, 66, 73], "tab": [3, 7, 8, 26, 30, 31, 33, 34, 35, 37, 51, 55, 57, 59], "entri": [3, 9, 14, 16, 17, 18, 20, 21, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 45, 50, 58, 60, 70, 72, 73], "like": [3, 6, 9, 20, 22, 24, 26, 27, 29, 40, 41, 49, 52, 54, 63, 69], "could": [3, 4, 5, 7, 38, 41, 49, 68, 72], "bug": [3, 63, 64], "seem": 3, "appear": [3, 29, 38, 54], "regularli": 3, "again": [3, 4, 31, 66], "known": [3, 31, 36, 39, 42, 57], "pleas": [3, 9, 15, 18, 20, 21, 24, 30, 31, 32, 33, 35, 36, 38, 39, 40, 41, 51, 57, 63, 64, 65, 66], "report": [3, 63, 65], "issu": [3, 51, 56, 65], "have": [3, 6, 7, 8, 9, 17, 18, 20, 24, 26, 29, 30, 31, 33, 34, 38, 39, 40, 41, 44, 45, 49, 51, 57, 60, 62, 63, 64], "relat": [3, 16, 18, 20, 33, 36, 42, 44, 52, 53, 66], "That": [3, 24], "ok": 3, "mayb": [3, 64], "were": [3, 18, 33, 47, 54, 60], "forgotten": 3, "These": [3, 8, 26, 33, 42, 47, 48, 54], "creat": [3, 4, 5, 6, 8, 9, 10, 14, 17, 18, 22, 26, 29, 30, 31, 34, 37, 41, 47, 51, 57, 60, 62, 68], "sub": [8, 9, 10, 17, 18, 21, 29, 33, 35, 44, 49], "associ": [3, 9, 14, 24], "origin": [3, 27, 49, 60], "thefirst": [], "instal": [3, 8, 29, 41, 44, 51, 52], "never": 3, "most": [3, 18, 22, 41, 49, 51, 52, 66, 68], "itself": [3, 19, 21, 24, 28, 30, 39, 41], "doesn": [3, 9, 18, 64, 65, 66], "t": [3, 4, 5, 9, 14, 18, 20, 29, 43, 44, 55, 59, 63, 64, 65, 66, 68, 72], "exist": [3, 5, 9, 19, 20, 24, 28, 29, 31, 37, 41, 44, 48, 51, 64, 66], "anymor": [3, 14, 64, 66], "connect": [3, 24, 28, 30, 31, 37, 39, 41, 44, 46, 48, 49, 51, 57, 58], "marri": 3, "herself": 3, "ha": [3, 4, 8, 9, 15, 20, 24, 26, 30, 31, 36, 41, 44, 51, 58], "super": [3, 9, 17, 29, 40, 44], "It": [3, 4, 6, 9, 18, 20, 24, 26, 29, 31, 33, 34, 35, 39, 41, 44, 46, 51, 62, 63, 71, 72], "shouldn": [3, 64], "within": [3, 15, 17, 32, 37, 39, 42, 44, 45, 47, 57], "": [3, 4, 9, 24, 30, 31, 33, 38, 40, 41, 42, 47, 48, 52, 54, 72], "invalid": [10, 51], "combin": [3, 9, 26, 38, 42, 44, 48, 49, 57], "should": [3, 7, 8, 9, 12, 34, 38, 39, 51, 58, 63], "clear": [], "up": [9, 18, 20, 36, 41, 44, 62, 63, 66, 68], "otherwis": 3, "cannot": [14, 26, 29, 35, 39, 64], "won": [3, 9, 20, 41, 59], "save": [5, 30, 31, 33, 34, 35, 36, 38, 61], "With": [3, 5, 29, 31, 34, 42, 46, 51, 57, 58, 66], "everi": [3, 4, 8, 30, 41], "cidoc": [3, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 33, 42, 43, 45, 46, 47, 48, 52, 53, 60, 67, 68, 69], "valid": [3, 7, 9, 15, 26, 42, 48, 51, 57, 68], "amount": [3, 60, 61, 73], "some": [3, 4, 5, 26, 32, 38, 39, 41, 44, 45, 51, 52, 57, 58, 63, 64], "time": [3, 4, 5, 9, 20, 31, 32, 33, 34, 41, 44, 51, 60, 62, 68, 73], "alwai": [3, 9, 48], "case": [3, 4, 6, 8, 9, 20, 25, 29, 30, 31, 33, 36, 39, 43, 49, 51, 52, 56, 59, 60, 62, 63, 65, 66], "afterward": [3, 30, 33], "found": [3, 9, 24, 29, 31, 35, 36, 38, 39, 40, 44, 45, 47, 51, 62, 71], "dealt": 3, "There": [3, 9, 20, 40, 41, 44, 60, 63, 69], "actual": [3, 39], "two": [3, 9, 39, 41, 48, 51], "one": [3, 4, 9, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 38, 41, 48, 51, 58, 60, 62, 68, 72], "ident": 3, "safe": 3, "test": [3, 4, 8, 11, 46, 52], "multipl": [3, 4, 8, 9, 15, 20, 29, 30, 33, 36, 40, 42, 43, 49, 73], "defin": [3, 12, 14, 20, 25, 33, 44, 48, 49, 52, 58, 60], "singl": [3, 15, 21, 29, 40, 51], "castl": 3, "citi": [3, 24, 26], "would": [3, 6, 9, 17, 19, 24, 26, 30, 31, 34, 41, 44, 63], "see": [3, 8, 9, 14, 21, 22, 24, 26, 28, 31, 33, 34, 35, 36, 37, 38, 40, 42, 45, 47, 51, 55, 58, 60, 63, 64, 66], "anybodi": [3, 59], "option": [3, 8, 10, 14, 26, 31, 36, 41, 56, 57, 60, 62, 69], "look": [3, 6, 9, 18, 24, 26, 33, 35, 41, 44], "remov": [3, 26], "wrong": 3, "ones": [3, 29, 33, 36, 37, 60], "besid": [3, 20, 68], "last": [3, 4, 14, 36, 62], "column": [3, 9, 57], "both": [3, 20, 68], "find": [3, 21, 26, 32, 35, 36, 40, 41, 42, 43, 52, 62, 65, 68, 71, 72], "anyth": 3, "unknown": [3, 36, 39], "search": [3, 7, 9, 26, 36, 42, 43, 51, 56, 69, 71, 72, 73], "select": [3, 4, 8, 9, 15, 18, 20, 26, 29, 30, 31, 34, 35, 36, 38, 39, 44, 51, 55, 58, 60, 62], "volum": 3, "class": [3, 5, 10, 15, 26, 29, 38, 40, 41, 43, 45, 46, 48, 49, 52, 53, 58, 60, 62], "ratio": [3, 54], "how": [3, 7, 12, 29, 30, 31, 33, 34, 35, 37, 43, 44, 45, 47, 52, 60], "100": [3, 36, 39], "mean": [3, 9, 29, 34, 41, 57], "absolut": [3, 8], "fuzzywuzzi": 3, "packag": 3, "levenshtein": 3, "distanc": [3, 58], "direct": [4, 42, 44, 58], "databas": [4, 10, 19, 21, 26, 28, 30, 31, 33, 35, 38, 41, 42, 43, 44, 49, 52, 68], "warn": [4, 5, 9, 51, 63], "manipul": [4, 51, 57], "loss": [4, 8], "unus": 4, "backup": [4, 5, 9], "export": [4, 10, 14, 42, 43, 51, 52], "download": [4, 5, 49, 51, 56], "lose": 4, "crash": 4, "local": [4, 51], "version": [4, 6, 8, 33, 43, 44, 47], "recent": 4, "maxim": [4, 12], "dai": [4, 9, 39, 68], "old": [4, 36], "simpl": 4, "power": 4, "unlik": [4, 33], "rest": [4, 15, 51], "safeguard": 4, "prevent": 4, "total": [4, 20], "make": [4, 6, 9, 14, 26, 36, 42, 43, 60, 63, 66], "lost": 4, "fix": [3, 4, 51, 63], "server": [4, 8, 41, 42, 51, 55], "depend": [4, 10, 33, 35, 36, 40, 41, 48, 54, 66], "situat": [4, 29, 41], "problem": [4, 24, 41, 65, 66], "transact": [4, 9], "commit": 4, "automat": [4, 9, 10, 20, 41, 45, 66, 68], "build": [4, 19, 30, 36], "around": [4, 58], "statement": 4, "don": [4, 20, 41, 44, 64, 72], "refresh": [4, 39], "press": [4, 30, 31, 34, 36, 37, 40, 45, 61], "f5": [4, 63], "termin": 4, "after": [3, 4, 7, 10, 11, 20, 31, 34, 35, 36, 40, 51, 57, 61, 63, 66], "queri": [4, 51], "row": [4, 7, 9, 39, 60, 68], "count": [4, 41, 44], "readabl": [4, 51, 58], "affect": 4, "error": [4, 7, 9, 43, 61, 65, 66], "noth": [4, 9, 63], "worri": [4, 41], "especi": [5, 9, 29, 41], "share": 5, "email": [5, 7, 11, 14, 53, 60, 66], "address": [5, 6, 11, 60], "includ": [5, 12, 18, 20, 35, 38, 41, 42, 49, 51, 60, 62], "folder": [5, 8], "directori": [5, 8], "isn": [5, 66], "writabl": 5, "2018": 5, "08": [5, 48], "23_1533_export": 5, "pg_dump": 5, "plain": 5, "format": [5, 8, 9, 26, 42, 43, 51, 69], "result": [3, 5, 6, 10, 29, 37, 41, 42, 51, 54, 57, 58, 61, 62, 68], "fill": [5, 24, 33, 38, 39, 40, 62, 68], "empti": [5, 9, 11, 20, 44], "psql": 5, "archiv": [5, 20, 26, 41, 59], "fc": 5, "pg_restor": 5, "restor": 5, "regardless": 5, "oper": [5, 9], "line": [5, 36, 39, 51, 57, 69], "break": [5, 51, 69], "d": [5, 31, 38, 54], "1": [5, 9, 30, 39, 44, 47, 54, 68], "zip": 5, "sever": [5, 20, 31, 36, 41, 48], "entiti": [5, 6, 9, 10, 14, 16, 17, 18, 20, 23, 24, 25, 26, 27, 29, 38, 40, 41, 42, 43, 44, 45, 47, 49, 50, 51, 52, 53, 55, 58, 59, 60, 62, 64, 67], "divid": [5, 24, 42, 54], "properti": [5, 18, 45, 46, 47, 48, 53], "geometri": [5, 9, 36, 56], "current": [5, 8, 9, 26, 33, 42, 44, 48, 51, 57, 60, 63], "2022": [5, 51], "10": [5, 39, 48, 57], "04_1610": 5, "follow": [5, 6, 8, 9, 18, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 44, 49, 50, 51, 53, 54, 57, 61], "kei": [5, 44, 63], "tag": [5, 41, 51], "mani": [6, 20, 24, 26, 41, 44, 63], "present": [6, 20, 29, 34, 41, 42, 45, 51, 57, 59], "wider": 6, "audienc": 6, "alreadi": [6, 9, 16, 17, 18, 20, 23, 24, 25, 26, 27, 29, 31, 33, 34, 35, 38, 40, 41, 50, 55, 60, 68], "run": [6, 8, 9, 41, 52], "valu": [6, 7, 10, 13, 39, 40, 41, 49, 51, 54, 61, 62, 68], "configur": [6, 8, 20, 52, 53, 55], "backend": [6, 53], "demo": [6, 51], "eu": [6, 8, 51], "overview": [6, 10, 14, 20, 29, 35, 40, 43, 44, 45, 46, 47, 51, 52, 58, 59, 61], "resolv": [6, 26, 38, 48, 49, 52], "view": [3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 23, 24, 25, 26, 27, 29, 31, 34, 36, 37, 45, 51, 52, 55, 57, 58, 59, 60], "specifi": [6, 20, 25, 29, 38, 39, 41, 42, 51], "5560": [], "prefer": [7, 15, 42, 53, 60], "profil": [7, 13, 14, 20, 39, 42, 43, 45, 51, 56, 57, 68, 73], "set": [7, 8, 9, 11, 13, 14, 29, 32, 36, 38, 41, 42, 51, 53, 57, 58, 59, 62, 66, 71], "much": [7, 8, 24, 31, 45], "For": [7, 9, 15, 17, 18, 19, 21, 22, 24, 26, 28, 30, 33, 34, 35, 41, 45, 47, 48, 51, 54, 66, 68], "now": [7, 30, 31, 34], "info": [7, 14, 20, 25], "minimum": 7, "jstree": 7, "charact": [7, 69], "filter": [7, 41, 42, 51, 52, 62, 73], "tree": [7, 31, 41], "type": [7, 10, 14, 15, 17, 18, 19, 20, 21, 22, 24, 25, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 49, 54, 58, 72, 73], "random": 7, "password": [7, 11, 14, 15, 42, 56], "length": 7, "reset": [7, 11, 14, 42, 60], "requir": [7, 9, 14, 20, 26, 33, 35, 36, 38, 41, 42, 51, 63, 70, 72], "confirm": [7, 42], "hour": [7, 60, 68], "long": [7, 20, 41, 73], "code": [7, 43, 44, 45, 51, 52, 65], "fail": [7, 66], "login": [7, 8, 11, 14, 43, 65], "often": [7, 22, 52], "tri": [7, 51, 64], "usernam": [7, 11, 12, 14, 15, 66], "forget": [7, 41], "minut": [7, 60, 66, 68], "wait": [7, 66], "exceed": 7, "activ": [7, 14, 18, 20, 31, 42, 44, 45, 57, 60, 62, 63, 68], "preview": [7, 9], "standard": [8, 37, 40, 42, 44, 72], "deliv": [8, 42], "high": [8, 26, 38, 42, 57], "attribut": [8, 20, 26, 41, 42], "onlin": [8, 38, 42], "scale": [8, 20, 42], "onc": [8, 55], "item": [8, 27, 29, 40, 47], "enabl": [8, 9, 15, 20, 42, 55, 57, 58], "expos": 8, "checkbox": [8, 26, 29, 57, 66], "complet": 8, "api": [8, 10, 15, 20, 26, 41, 42, 43, 49, 52, 60], "yourserv": 8, "manifest": [8, 42], "2": [8, 30, 39, 44, 47, 54], "path": [8, 51], "drop": [8, 20, 38, 58], "zone": 8, "var": 8, "www": [8, 15, 26, 38], "iipsrv": 8, "write": 8, "execut": [8, 10, 43, 52], "webserv": 8, "convers": 8, "control": [8, 15, 38, 51], "convert": [8, 55, 68], "pyramid": 8, "tiff": 8, "none": [8, 9, 36, 41, 51, 53, 63], "deflat": 8, "lossless": 8, "size": [8, 20, 53], "mai": [8, 9, 24, 29, 39, 41, 44, 51, 52, 58, 63, 64], "larg": [8, 20, 36, 39, 58], "jpeg": [8, 20], "smaller": [8, 52], "transpar": 8, "add": [3, 8, 9, 14, 18, 26, 29, 30, 33, 34, 35, 36, 37, 38, 39, 41, 51, 59, 60, 61, 69], "accordingli": 8, "been": [8, 36, 44], "successfulli": 8, "bmp": [8, 20], "gif": [8, 20], "ico": [8, 20], "jpg": [8, 20], "svg": [8, 20], "tif": 8, "csv": [9, 10, 42], "gi": 9, "origin_id": 9, "danger": 9, "integr": [9, 10, 26, 43, 58], "consum": 9, "revers": 9, "them": [9, 15, 18, 22, 29, 32, 33, 36, 41, 44, 55, 60, 63], "so": [9, 22, 30, 31, 36, 39, 41, 44, 45, 51, 52, 58, 68], "strongli": 9, "advis": 9, "sql": [9, 10, 43, 52], "older": [9, 63], "enforc": 9, "check": [9, 10, 11, 14, 26, 29, 35, 39, 42, 43, 45, 58, 60, 62], "alright": 9, "encapsul": 9, "script": [9, 44], "sure": [9, 36, 51, 63, 66, 68], "extens": [9, 20, 45, 51], "spell": [9, 39, 67], "correctli": [9, 39], "lower": [9, 24], "my_data": 9, "header": [9, 73], "each": [9, 15, 24, 39, 40, 42, 44, 49, 51, 54], "separ": [9, 41], "comma": 9, "enclos": 9, "doubl": [9, 36], "quot": 9, "To": [9, 15, 16, 17, 18, 20, 23, 24, 25, 27, 30, 31, 33, 35, 36, 37, 38, 39, 40, 45, 47, 48, 51, 52, 57, 62, 67, 68, 73], "retrac": [9, 52], "ll": [9, 43, 66], "choos": [9, 15, 17, 30, 31, 34, 35, 36, 37, 38, 40, 45, 58], "titl": [9, 18, 51, 57], "messag": [9, 51, 63, 64, 66], "miss": [9, 10, 41, 44, 63, 68], "wont": [], "trace": [], "back": [24, 30, 31], "uniqu": [9, 26, 49], "per": [9, 73], "prefix": 9, "person_1": 9, "place_1": 9, "begin_from": [9, 48], "begin_to": [9, 48], "end_from": [9, 48], "end_to": [9, 48], "type_id": 9, "north": 57, "east": 57, "yyyi": [9, 39, 62], "mm": [9, 39], "dd": [9, 39], "span": [9, 31, 32, 48, 62, 68], "incorrect": 9, "red": 9, "discard": 9, "silent": 9, "advanc": [9, 14, 62, 63, 69], "between": [3, 9, 18, 31, 33, 39, 40, 45, 47, 48, 49, 54, 58], "studi": [9, 29, 43], "go": [9, 18, 20, 24, 30, 31, 39, 40, 45, 57], "space": [9, 20, 24, 30], "point": [9, 18, 33, 34, 35, 36, 51, 57], "coordin": [10, 26, 36, 57], "too": [24, 27, 58, 62], "keep": [9, 10, 14, 29, 31, 32, 35, 36, 37, 38, 41, 45, 69], "mind": [9, 10, 29, 31, 32, 35, 36, 37, 38, 41], "wgs84": [9, 57], "geodet": 9, "latitud": [], "longitud": [], "number": [9, 48, 49, 51, 66], "duplic": [9, 10, 41, 72], "chosen": [9, 36, 38, 40, 41], "sensit": [9, 62], "king": [9, 31, 38, 39], "arthur": 9, "print": [9, 49], "stop": 9, "went": [9, 33], "through": [9, 18, 20, 26, 44, 51], "summari": [9, 27], "brows": [9, 14, 44, 45], "layout": [9, 20, 52], "did": 9, "lot": [9, 26, 41], "good": [9, 20, 24, 30], "idea": 9, "field": [10, 26, 31, 36, 37, 38, 40, 42, 43, 48, 55, 57, 60, 61, 68, 70, 71, 72, 73], "gener": [9, 10, 18, 33, 43, 51, 52, 53, 56, 63, 68], "authent": [10, 11, 15, 43], "mail": [10, 14, 43], "modul": [10, 39, 43, 56, 57, 68], "map": [10, 17, 18, 19, 21, 22, 24, 26, 28, 30, 31, 35, 42, 43, 45, 47, 48, 49, 56, 60], "iiif": [10, 41, 43, 55], "content": [10, 25, 27, 34, 43, 49, 57, 63], "frontend": [10, 41, 43], "orphan": [10, 58], "subunit": [10, 22, 27, 30], "circular": 10, "similar": [10, 26, 38, 41, 57, 68], "prepar": 10, "dump": 10, "json": [10, 51], "xml": 10, "arch": [10, 20, 41, 43], "fetch": 10, "reference_system": 10, "index": [10, 16, 17, 18, 20, 23, 24, 25, 27], "vocab": [10, 43], "show": [10, 20, 26, 36, 39, 41, 45, 51, 58, 59, 60, 62, 63, 66, 68, 73], "vocabulari": [10, 38, 49], "ensur": [11, 20, 41], "disabl": [11, 12, 26], "leav": 11, "send": [11, 14, 35], "mail_password": 11, "smtp": 11, "net": [6, 11], "port": 11, "587": 11, "recipi": [11, 18], "feedback": [11, 63], "receiv": [11, 35, 60, 66], "zoom": [12, 36, 57, 58, 60], "lowest": [12, 60], "max": [12, 20, 60], "adjust": [12, 60], "far": [12, 60], "disableclusteringatzoom": 12, "cluster": [12, 36], "maxclusterradiu": 12, "rang": [12, 44, 48, 51, 61], "geonam": [12, 30, 38, 49, 56], "overwrit": 13, "newslett": [14, 42, 60], "subscript": 14, "registr": 14, "account": [14, 61], "sent": [14, 35], "inact": [14, 59], "modifi": [14, 18, 60], "full": [14, 36, 57, 60, 62], "easier": [14, 22, 26, 42, 60], "identifi": [9, 14, 22, 26, 36, 60], "free": [14, 31, 33, 35, 36, 38, 39, 43, 49], "guest": 14, "who": [14, 16, 17, 21, 22, 29, 33], "aren": [14, 20, 29, 41, 68], "contributor": 14, "readonli": 14, "ye": 14, "refer": [10, 14, 16, 17, 18, 19, 20, 21, 22, 24, 27, 28, 29, 30, 32, 34, 35, 39, 40, 41, 42, 43, 44, 45, 47, 53, 57], "own": [14, 16, 17, 21, 31, 36, 38, 41, 42, 45, 51], "skosmo": 15, "As": [15, 31, 33, 35, 36, 38, 39, 45, 61], "ch": 15, "trail": 15, "slash": 15, "vocabs_pw": 15, "given": [15, 18, 39, 42, 51, 54, 61], "differ": [15, 18, 20, 30, 32, 33, 35, 36, 38, 40, 41, 42, 45, 47, 51, 58, 67, 69, 72], "confer": 15, "w3": 15, "org": [15, 26, 38], "tr": 15, "sko": [15, 26, 38, 57], "primer": 15, "either": [15, 20, 34, 39, 41, 51, 57, 66], "concept": [15, 26, 57], "child": 15, "conceptu": [15, 44, 45], "decid": [15, 40], "choic": [15, 29, 40], "what": [15, 58], "e74": 16, "famili": 16, "tribe": 16, "greenpeac": 16, "nation": 16, "museum": [16, 26, 31, 38, 44], "denmark": 16, "On": [16, 17, 18, 20, 23, 24, 25, 27, 31, 33, 35], "alia": [10, 16, 24, 30, 36, 70], "resid": [16, 24], "main": [16, 41, 44, 53, 71], "born": [16, 48], "began": [3, 16], "di": [16, 48], "sourc": [16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 30, 35, 39, 43, 45, 47, 49, 51, 52, 71], "referenc": [16, 17, 18, 19, 21, 24, 25, 28], "particip": [3, 16, 18, 22, 31, 33, 44, 48], "member": [16, 37], "remain": [9, 16, 17, 22, 24, 28, 43, 54], "coin": [17, 30, 31], "stratigraph": [9, 17, 19, 21, 22, 24, 43, 47, 48, 54, 61], "unit": [9, 17, 19, 21, 22, 36, 39, 43, 47, 48, 54, 61], "part": [17, 18, 19, 21, 28, 33, 39, 41, 49, 55, 59], "acquisit": [17, 21, 42], "modif": [17, 21, 38, 40], "move": [17, 21, 24, 31, 32, 58], "carrier": 17, "e7": [18, 48], "e8": 18, "e5": [18, 48], "e11": 18, "e9": 18, "common": [18, 26, 51, 65], "battl": [18, 35, 39], "meet": [18, 62], "wed": 18, "perform": [18, 20, 31, 45, 56], "natur": [18, 38, 47], "disast": 18, "conserv": 18, "treatment": 18, "movement": [18, 34], "crm": [18, 33, 42, 43, 45, 46, 47, 48, 52], "occur": [9, 18, 35, 51], "anoth": [18, 20, 24, 29, 31, 33, 34, 41, 49, 51, 60], "war": [18, 35, 39, 48], "preced": [10, 18, 33, 35, 39, 44, 48], "journei": [18, 32, 35], "donor": 18, "step": [18, 22, 24, 26, 30, 31, 32, 33, 34, 37, 41, 42], "instruct": [18, 24, 26, 31], "our": [18, 24, 26, 41, 43, 44, 51], "ownership": 18, "acquir": [18, 31, 41], "surrend": 18, "creator": [18, 20, 41], "carri": [18, 30], "out": [18, 29, 33, 36, 40, 41, 48, 51, 57, 62, 63, 68], "while": [18, 42, 45, 47, 49, 51, 54], "destin": 18, "unfortun": [18, 33], "background": [18, 42, 47, 58, 68], "more": [18, 19, 20, 21, 24, 26, 28, 29, 30, 31, 33, 35, 36, 38, 40, 41, 42, 43, 44, 45, 47, 49, 51, 52, 62], "tutori": [18, 31, 33, 35, 36, 41], "produc": 18, "e18": [19, 24, 28, 47, 48], "physic": [19, 24, 28, 30, 31, 34, 36, 47, 48, 57], "thing": [19, 24, 28, 30, 36, 47, 48, 57], "archaeolog": [9, 19, 21, 22, 24, 28, 31, 42, 43], "record": [19, 21, 24, 28, 31, 34, 49, 54], "grave": [19, 24, 28, 30, 36], "consid": [19, 24, 47, 49], "consist": [9, 19, 21, 26, 28, 30, 39, 41, 42, 44], "pit": [19, 30], "ditch": 19, "rampart": 19, "themselv": [19, 28, 45], "structur": [9, 19, 22, 28, 41, 42, 43, 51], "same": [19, 20, 21, 26, 28, 32, 33, 34, 37, 41, 47, 48], "wai": [19, 28, 31, 32, 34, 40, 44, 48, 49, 51], "label": [19, 29, 44, 58, 68], "disk": 20, "display": 20, "upload": [20, 31, 42, 52, 53], "exce": 20, "limit": [20, 53, 68], "criteria": 62, "drag": [20, 57, 58], "area": [20, 36, 54, 55, 57], "chose": [20, 68], "prefil": 20, "filenam": [20, 41], "work": [20, 22, 39, 42, 43, 63], "practic": [20, 41], "maximum": 20, "mb": 20, "width": [20, 58], "pixel": [20, 58], "display_file_ext": 20, "height": [20, 29, 58], "120": 20, "px": 20, "larger": 20, "try": [20, 45, 51, 58, 63, 64, 66, 68], "small": [20, 60], "impact": 20, "e20": 21, "biolog": [21, 30], "anthropolog": [21, 24, 30, 43, 56, 61], "bone": [21, 30, 54], "sex": [21, 29, 30, 42, 56], "gender": [21, 30], "ag": [21, 30, 42], "individu": [21, 30, 54], "mask": [21, 30], "workflow": [21, 22, 24, 28, 30, 32, 42, 59], "femur": [21, 30, 54], "humeru": [21, 54], "molar": 21, "historian": 22, "come": [22, 29, 41, 49, 68], "histor": [9, 22, 26, 36, 38, 39, 43], "usual": [22, 27, 41], "next": [22, 30, 40], "bit": 22, "question": [9, 22, 41], "cours": [22, 41, 57], "hi": [22, 31, 39], "life": [22, 48], "archaeologist": 22, "reflect": [22, 34, 51], "contin": 24, "graveyard": [24, 30], "austria": 24, "itali": 24, "respect": [24, 27, 29, 33, 34, 35, 36, 38, 41, 48, 49, 57], "styria": 24, "duchi": 24, "bavaria": 24, "lombard": [24, 38], "kingdom": 24, "done": [24, 29], "support": [24, 63, 69], "its": [24, 30, 34, 39, 40, 45, 51, 57, 58], "certain": [24, 30, 36, 44, 46, 48, 49, 57], "posit": [24, 30, 36, 49, 57], "extend": [24, 30, 33, 34, 57], "variou": [3, 24, 26, 27, 30, 35, 36, 42, 49], "tempor": [24, 30, 35, 42], "spatial": [24, 30, 42, 57], "furthermor": [24, 26, 39, 40, 45, 49], "those": [24, 30, 39, 47, 51], "superior": 24, "cemeteri": 24, "compos": 24, "burial": [24, 28, 30, 36], "primari": 24, "secondari": [24, 27], "solv": [3, 24, 63, 65], "book": [25, 30, 49], "inbook": 25, "articl": [25, 30, 51], "charter": [25, 27, 49], "chronicl": 25, "extern": [10, 20, 25, 26, 31, 35, 38, 40, 41, 47, 51, 53], "doi": [25, 49], "At": [25, 33, 41, 48, 55], "instead": [25, 34, 45, 51], "author": [26, 33, 49], "wikidata": [38, 49], "definit": [26, 38, 44, 45, 51], "confid": [26, 38, 57], "degre": [26, 38, 54, 57], "interchang": [26, 38, 57], "close": [26, 36, 38, 57], "match": [9, 26, 36, 38, 44, 57], "suffici": [26, 38, 57], "retriev": [26, 38, 51, 57], "exact": [26, 36, 38, 39, 57, 68], "vienna": [26, 38, 61], "suitabl": [26, 33, 38, 52], "wikipedia": 26, "wiki": [26, 38, 43], "togeth": [9, 26, 41, 44], "q123": 26, "desir": [26, 30, 37, 38], "short": [26, 31, 35, 44], "mous": [26, 29, 40, 57, 58, 73], "over": [26, 29, 31, 36, 40, 41, 49, 61, 73], "attach": [26, 41, 51], "e33": [27, 45, 47, 49], "linguist": [27, 47, 49], "written": [27, 30, 34, 52], "mediev": [27, 49], "letter": [27, 31, 32, 33, 35], "whole": [3, 9, 27, 49], "translat": [26, 27, 45, 47, 52, 53], "latin": 27, "comment": [27, 39, 62, 68], "tool": [28, 31, 42, 43, 45, 51, 54, 57, 59, 61, 73], "lead": [28, 41, 45, 51], "backfil": [28, 30], "e55": [29, 48], "hierarch": [3, 29, 40], "via": [30, 33, 35, 36, 37, 39, 42, 43, 45, 46, 48, 49, 51, 53, 54, 55], "adapt": [29, 42, 60], "interest": 29, "dynam": [29, 40], "least": [29, 40, 41, 62], "permiss": [29, 38, 40, 42, 64], "basic": [29, 40], "root": [29, 52], "untyp": 29, "switch": [29, 57, 58, 71], "few": [29, 66, 72], "renam": 29, "subtyp": 29, "grei": 29, "dimens": [29, 30, 48], "weight": [29, 54], "decim": [29, 57], "permit": 29, "put": [29, 33, 38, 39, 41, 45], "awkward": 29, "reduc": 29, "haven": [29, 63], "mention": 30, "element": [30, 31, 33, 34, 60, 63], "procedur": [30, 33, 34], "3": [30, 48, 51, 54], "knife": 30, "4": [20, 30, 41, 51, 62, 68], "teeth": 30, "classif": [30, 33, 34], "bout": 30, "ani": [30, 31, 41, 45, 49, 51], "concern": [30, 33, 34, 45, 52], "store": [30, 31, 42, 48, 49], "state": [30, 36, 38, 51, 61], "appropri": [30, 31, 34], "settlement": 30, "magnifi": [30, 36, 57], "evid": 30, "plot": [30, 36], "photo": 30, "do": [30, 31, 36, 39, 45, 63], "By": [26, 30, 31, 35, 36, 39, 40, 57], "directli": [30, 38, 41, 45, 47, 54], "layer": [30, 36, 57], "newli": [30, 31], "potteri": 30, "finger": 30, "ring": [30, 48], "patholog": 30, "measur": [30, 61], "discolor": 30, "canin": 30, "owner": 31, "represent": 31, "regard": [31, 38, 40, 53], "repres": [31, 35, 36, 39, 47], "cover": [31, 36], "advantag": [26, 31], "fit": [31, 35, 36], "Then": [31, 36], "learn": 31, "land": [31, 35, 54], "kind": [31, 36, 40], "abl": [26, 31, 41], "track": [31, 39, 42, 48, 53, 61], "occurr": 31, "excav": [31, 55], "transfer": 31, "sold": 31, "leonardo": 31, "paint": 31, "mona": 31, "lisa": 31, "workshop": 31, "florenc": 31, "therefor": [31, 41, 45, 54], "franci": 31, "franc": 31, "exhibit": 31, "ch\u00e2teau": 31, "ambois": 31, "fountainebleau": 31, "pictur": [31, 55], "louvr": 31, "pari": 31, "typic": 32, "scenario": 32, "suggest": [32, 63, 65], "discuss": 32, "best": 32, "team": [20, 32, 41, 44], "profess": [32, 43], "special": [33, 41, 42, 44, 47, 69], "trip": 33, "chronolog": 33, "captur": 33, "continu": [33, 35, 36], "altern": [33, 41, 51], "role": [33, 38, 41], "determin": [33, 42, 44, 49, 54], "exchang": [34, 43], "materi": 34, "said": 34, "copi": [34, 36], "preset": 34, "subgroup": 35, "bring": [35, 38], "simultan": 35, "music": 35, "festiv": 35, "parallel": 35, "concert": 35, "overlap": 35, "sequenc": [35, 44, 51], "introduct": [35, 43], "think": [35, 38, 39, 44, 64, 66], "yet": 35, "design": [20, 36, 41, 42, 54], "screen": [36, 57], "glass": [36, 57], "correct": [9, 20, 36, 41], "pop": 36, "marker": [36, 57], "visual": [36, 42, 43, 50, 56], "hover": 36, "landscap": 36, "street": 36, "satellit": 36, "whether": [36, 73], "four": [36, 39], "mode": [36, 57, 58], "centerpoint": 36, "linestr": [9, 36, 57], "drawn": [36, 57], "border": 36, "river": 36, "bed": 36, "draw": [36, 55, 57], "shape": [36, 38, 54, 57], "rectangl": [36, 55, 57], "ground": 36, "polygon": [9, 36, 57], "hole": 36, "whose": 36, "mark": [20, 36, 41, 55, 70, 72], "enough": [36, 39, 68], "window": 36, "dedic": 36, "countri": [37, 49], "lod": [38, 42], "gazett": [38, 49], "particularli": [38, 42], "But": [29, 38, 41], "analog": 38, "card": [38, 49], "catalog": [38, 49], "inventori": [38, 49], "manual": [38, 40, 41, 42, 50, 51, 52, 57], "q3044": 38, "charlemagn": 38, "input": [38, 51, 68], "2761369": 38, "AT": 38, "precis": [38, 57], "down": 38, "left": [38, 50, 55, 57, 58], "blank": 38, "belt": 38, "buckl": 38, "q3180027": 38, "todai": 38, "frank": 38, "becam": 38, "holi": [38, 48], "roman": 38, "emperor": 38, "800": [26, 38, 68], "venu": 38, "willendorf": 38, "histori": 38, "q131397": 38, "focus": 39, "statigraph": 39, "bottom": [39, 40, 57], "initi": [39, 68], "hidden": [39, 68], "year": [39, 48, 61, 62, 68], "4713": [39, 68], "9999": [39, 51, 68], "month": [39, 62, 68], "12": [9, 39, 48, 62, 68], "31": [39, 48, 54, 62, 68], "hh": 39, "23": [39, 48, 68], "59": [39, 51, 68], "ss": 39, "indic": [20, 39, 41, 44, 48, 51], "minu": 39, "bc": [39, 68], "moment": [39, 48, 58], "due": [39, 42], "softwar": [39, 42, 45, 47, 52], "restrict": [39, 41, 64], "postgresql": [39, 44, 53, 68], "prolept": [39, 68], "gregorian": [39, 68], "calendar": [39, 68], "hast": 39, "fought": 39, "william": 39, "duke": 39, "normandi": 39, "norman": 39, "french": [39, 42], "troop": 39, "harold": 39, "godwinson": 39, "english": [39, 42], "armi": 39, "14th": 39, "octob": 39, "1066": 39, "14": 39, "alik": 39, "Or": 39, "peac": 39, "westphalia": 39, "treati": 39, "sign": [39, 51], "1648": [39, 48], "osnabr\u00fcck": 39, "15th": 39, "m\u00fcnster": 39, "24th": 39, "thirti": [39, 48], "eighti": 39, "05": [39, 48], "15": 39, "24": [39, 48], "uncertain": 39, "third": 39, "fourth": 39, "must": [20, 39, 41, 44, 51], "frame": 39, "certainti": 39, "death": [39, 48], "stephen": 39, "hungari": 39, "august": 39, "1038": 39, "birth": [39, 44, 48, 68], "01": [39, 62, 68], "975": 39, "earliest": 39, "latest": [39, 50], "howev": 39, "gear": [39, 45], "organ": 40, "distinct": [40, 49], "push": 40, "blue": 40, "light": 40, "answer": 41, "frequent": 41, "approach": [41, 51], "deal": [41, 44, 45, 58], "probabl": [41, 49, 63], "analys": [41, 43, 56, 61], "develop": [20, 41, 42, 43, 44, 45, 51], "decis": 41, "regist": [41, 66], "model": [9, 41, 43, 44, 46, 48, 49, 50, 52, 53, 55, 59], "plan": [20, 41], "hide": [41, 60], "reason": [41, 44, 51, 63, 66], "conflict": 41, "core": 41, "strict": 41, "better": 41, "peopl": 41, "sai": 41, "alex": 41, "him": 41, "pick": 41, "he": 41, "unstructur": 41, "being": [26, 41], "nor": [41, 44], "searchabl": [41, 60], "solut": [41, 63], "happi": 41, "help": [41, 63, 65], "tailor": 41, "hesit": 41, "reach": [41, 46, 50], "topic": [41, 42, 51, 63], "linebreak": 41, "html": [41, 52], "markdown": 41, "bold": 41, "font": 41, "underlin": 41, "necessarili": [41, 49], "handl": [41, 43], "interoper": 41, "Of": 41, "easi": [42, 51], "emphasi": [42, 45], "conveni": [42, 44, 47], "contribut": 42, "significantli": 42, "effort": 42, "ontologi": [42, 44, 45], "easili": 42, "fair": 42, "principl": 42, "intern": [26, 42, 44, 45], "wide": [42, 44, 68], "uncertainti": [42, 68], "checker": [42, 43, 45], "quick": [42, 43, 62], "accord": [42, 47, 48, 66], "flexibli": 42, "thu": [42, 45], "interact": [42, 57], "navig": [42, 56, 62, 73], "network": [42, 43, 50, 56], "bookmark": [42, 50, 53, 64], "context": [42, 45], "internation": 42, "gettext": 42, "catalan": 42, "german": 42, "spanish": 42, "viewer": [20, 41, 42, 55], "mirador": 42, "grant": 42, "autom": 42, "unsubscrib": [42, 60], "interdisciplinari": [42, 44], "method": [42, 54], "futur": 42, "ferembach": [42, 54], "et": [42, 54], "al": [42, 54, 71], "estim": [42, 56], "1979": [42, 54], "ment": [42, 61], "archeolog": 43, "geospati": 43, "redmin": 43, "annot": [10, 43, 53, 56], "radiocarbon": [43, 56], "shortcut": [43, 45, 68], "guid": 43, "paramet": [43, 58], "proxi": 43, "troubleshoot": 43, "faq": 43, "doe": [43, 44, 51], "why": 43, "longer": [3, 43], "iso": 44, "formal": 44, "council": 44, "icom": 44, "basi": 44, "underli": 44, "v7": 44, "publish": [44, 54], "2021": 44, "pars": 44, "github": 44, "numer": [44, 61], "e39": [44, 48], "e67": [44, 48], "characteris": 44, "had": [44, 48, 68], "invers": 44, "sinc": [9, 44, 72], "domain": [26, 44, 48, 51], "ignor": 44, "foreign": 44, "sub_properties_of": 44, "suffix": 44, "counterpart": 44, "p3": [44, 48], "parser": 44, "com": 44, "craw": 44, "blob": 44, "cidoc_rtfs_pars": 44, "normal": 44, "troubl": 44, "prior": [45, 51], "knowledg": [26, 45], "verifi": 45, "conform": [45, 46], "fact": 45, "gain": 45, "insight": 45, "graphic": 45, "symbol": [45, 51, 69], "introduc": 45, "increas": 45, "finer": 45, "grain": 45, "contextu": 45, "lingust": 45, "refin": [47, 62], "7": [47, 54], "compris": 47, "rel": 47, "differenti": 47, "confus": 47, "true": [47, 51], "simplifi": 48, "oa": 48, "p11i": 48, "stefan": 48, "joachim": 48, "son": 48, "father": 48, "usag": [48, 56], "birthplac": 48, "p92i": 48, "brought": 48, "e63": 48, "p7": 48, "took": [3, 48], "albert": 48, "einstein": 48, "e521": 48, "e567": 48, "ulm": 48, "p93i": 48, "e64": 48, "e69": 48, "princeton": 48, "begin_com": 48, "end_com": 48, "timestamp": [48, 51], "e61": 48, "primit": 48, "p4": 48, "e52": 48, "p81": 48, "ongo": 48, "throughout": 48, "lanc": 48, "forg": 48, "durat": 48, "0770": 48, "destroi": [48, 68], "p13": 48, "destruct": 48, "e6": 48, "throw": 48, "lava": 48, "3019": 48, "03": 48, "25": [26, 48], "p98i": 48, "1981": 48, "11": [26, 48, 51], "p100i": 48, "ladi": 48, "diana": 48, "1997": 48, "1618": 48, "purpos": 48, "e62": [48, 69], "string": [9, 48, 69], "p43": 48, "e54": 48, "bibliograph": 49, "delimit": 49, "along": 49, "chapter": 49, "figur": 49, "folio": 49, "7v": 49, "kell": 49, "saint": 49, "mari": 49, "21": 49, "less": 49, "geograph": [26, 49], "eleven": 49, "million": 49, "charg": [49, 58], "distinguish": 49, "web": [26, 49, 52, 53], "non": 49, "encyclopedia": 49, "domain_id": 49, "property_cod": 49, "range_id": 49, "alphanumer": [49, 61], "alon": 49, "p67i": 49, "p71": 49, "terri": 49, "prattchet": 49, "q46248": 49, "p71i": 49, "e1": 49, "depict": 49, "scan": 49, "extract": 49, "mostli": 49, "holder": [20, 49], "logo": [50, 71], "upper": [50, 57], "program": 51, "analyt": 51, "mashin": 51, "constraint": 51, "hand": 51, "swagger": 51, "just": [9, 51, 68], "visit": 51, "rdf": 51, "visibl": [51, 57, 59], "commun": 51, "schema": [51, 53], "5117": 51, "machin": 51, "deprec": 51, "unstabl": 51, "unavail": 51, "notion": 51, "signific": 51, "major": [51, 54, 63], "minor": 51, "except": [29, 51, 60, 69], "previou": 51, "post": 51, "roadmap": 51, "releas": 51, "discontinu": 51, "openapi": 51, "lpf": 51, "geojson": 51, "deriv": 51, "sort": [51, 73], "consult": 51, "convent": 51, "success": 51, "failur": 51, "2xx": 51, "4xx": 51, "signal": 51, "5xx": 51, "tue": 51, "19": 51, "jul": 51, "13": [9, 51], "gmt": 51, "statu": 51, "404": 51, "kf": 51, "desc": 51, "flask": [51, 52], "catch": 51, "handler": 51, "behind": 51, "api_proxi": 51, "8899": 51, "No": 51, "python": 52, "framework": 52, "config": 52, "upgrad": 52, "live": [52, 62], "util": 52, "static": 52, "css": 52, "javascript": 52, "templat": 52, "compil": 52, "rout": 52, "redirect": 52, "sphinx": 52, "15883": 52, "init": 52, "before_request": 52, "get_by_id": 52, "some_data": 52, "some_filt": 52, "postgi": [53, 57], "literatur": 54, "assess": 54, "schwidetzki": 54, "m": 54, "stloukal": 54, "empfehlungen": 54, "f\u00fcr": 54, "die": 54, "alter": 54, "und": 54, "geschlechtsdiagnos": 54, "am": 54, "skelett": 54, "homo": 54, "30": [54, 57, 61], "32": 54, "primarili": 54, "skull": 54, "pelvi": 54, "examin": 54, "propos": 54, "margo": 54, "supramastoideu": 54, "o": 54, "sacrum": 54, "robust": 54, "supplement": 54, "glabella": 54, "w": 54, "arcu": 54, "superciliari": 54, "tuber": 54, "frontali": 54, "parietali": 54, "inclinatio": 54, "processu": 54, "mastoideu": 54, "relief": 54, "planum": 54, "nuchal": 54, "protuberantia": 54, "occipitali": 54, "externa": 54, "zygomaticu": 54, "zygomaticum": 54, "crista": 54, "supramastoideum": 54, "supraorbitali": 54, "orbita": 54, "mandibl": 54, "overal": 54, "mentum": 54, "angulu": 54, "inferior": 54, "m2": 54, "angl": 54, "sulcu": 54, "praeauriculari": 54, "incisura": 54, "ischiadica": 54, "pubi": 54, "arc": 54, "compos\u00e9": 54, "coxa": 54, "foramen": 54, "obturatum": 54, "corpu": 54, "ossi": 54, "ischii": 54, "iliaca": 54, "fossa": 54, "auricular": 54, "acetabuli": 54, "express": 54, "categori": [29, 54], "assign": 54, "femal": 54, "indiffer": 54, "male": 54, "preserv": 54, "sum": 54, "69": 54, "70": 54, "prerequisit": 55, "wasn": 55, "side": [55, 63], "guarante": 55, "wkt": [10, 56], "overlai": [56, 60], "leaflet": 57, "mousewheel": 57, "hold": 57, "basemap": 57, "popup": 57, "40": 57, "20": 57, "characterist": 57, "road": 57, "toggl": 57, "epsg": [9, 57], "4326": [9, 57], "d3": 58, "j": 58, "graph": [26, 58], "egocentr": 58, "classic": 58, "wheel": 58, "node": 58, "rotat": 58, "pan": 58, "color": 58, "depth": 58, "hardwar": 58, "acceler": [58, 61], "faster": 58, "exactli": 58, "remind": 59, "privat": 59, "seen": 59, "everybodi": 59, "els": [26, 59], "got": 59, "twice": 60, "uncheck": 60, "second": [9, 60, 68, 73], "deactiv": [60, 66], "disappear": 60, "alias": [9, 60, 62, 67, 73], "whom": 60, "laboratori": 61, "abbrevi": 61, "lab": 61, "conduct": 61, "vera": 61, "environment": 61, "specimen": 61, "sampl": 61, "analysi": 61, "1015": 61, "big": 62, "global": [62, 72], "term": [62, 73], "Not": 62, "ada": 62, "lovelac": 62, "da": 62, "love": 62, "unacc": 62, "lov\u0113": 62, "vice": 62, "versa": 62, "placehold": 62, "l": 62, "ce": 62, "me": 62, "dateless": 62, "1540": 62, "1560": 62, "1550": 62, "intend": 63, "sometim": 63, "cach": 63, "rememb": 63, "firefox": 63, "screenshot": 63, "explan": 64, "encount": 64, "let": 64, "know": 64, "read": [64, 73], "obsolet": 64, "proce": [3, 66], "keyboard": 66, "capslock": 66, "forgot": 66, "misspel": 66, "secur": 66, "attack": 66, "lock": 66, "until": 66, "e41": 67, "appel": 67, "oa8": 68, "oa9": 68, "knew": 68, "1356": 68, "unsur": 68, "church": 68, "fist": 68, "decad": 68, "1800": 68, "1809": 68, "zero": 68, "leap": 68, "almost": 69, "cyril": 69, "mathemat": 69, "asterisk": [70, 72], "serv": 71, "quit": 72, "difficult": 72, "glanc": 73, "quickli": 73, "invert": 73, "cut": 73, "value_typ": 9, "reference_system_": 9, "administrative_unit": 9, "historical_plac": 9, "semicolon": 9, "surround": 9, "1234": [6, 9], "65": 9, "458533781141528": 9, "41": 9, "922205268362234": 9, "53062334955289": 9, "917606998887024": 9, "52169797441624": 9, "888476931243254": 9, "append": 9, "reference_system_wikidata": 9, "substitut": 9, "underscor": 9, "_": 9, "reference_system_getty_aat": 9, "q54123": 9, "close_match": 9, "exact_match": 9, "presesent": [], "example_place_hierarchi": 9, "parent_id": 9, "openatlas_class": 9, "56": 9, "78": 9, "5678": 9, "declar": 9, "insensit": 9, "three": 3, "relink": 3, "multi": 9, "geometriccollect": 9, "unselect": 29, "autocomplet": 68, "timespan": 68, "5": 68, "doc": [], "met": [20, 41], "cc": [20, 41], "BY": [20, 41], "flag": [20, 41], "whatev": [], "md": [], "rst": [], "openatlas_parent_id": 9, "merg": 26, "compar": 26, "insid": 26, "collabor": 26, "multilingu": 26, "wikimedia": 26, "foundat": 26, "anyon": 26, "cc0": 26, "creativ": 26, "000": 26, "gemeinsam": 26, "normdatei": 26, "organis": 26, "subject": 26, "head": 26, "corpor": 26, "bodi": 26, "catalogu": 26, "mainli": 26, "librari": 26, "increasingli": 26, "refernc": [], "soon": 3, "incompat": 3, "chain": 3, "succeed": 3}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"api": [0, 51], "arch": 1, "overview": [1, 50], "fetch": 1, "data": [1, 3, 30, 41, 42], "from": 1, "automat": 1, "creat": [1, 33, 35, 36, 38, 40], "entiti": [1, 3, 22, 48], "type": [1, 3, 9, 29, 40, 41, 48], "refer": [1, 9, 25, 26, 31, 36, 38, 49], "system": [1, 9, 26, 36, 38, 49], "content": 2, "integr": [3, 42], "check": [3, 20, 41], "orphan": 3, "without": 3, "link": [3, 16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 29, 31, 33, 46], "miss": 3, "file": [3, 20, 31, 41, 49, 64], "iiif": [3, 8, 42], "subunit": [3, 19, 21, 24, 28], "circular": 3, "depend": 3, "date": [3, 9, 39, 42, 48, 61, 68], "duplic": 3, "similar": 3, "name": [3, 66, 72], "execut": 4, "sql": [4, 5], "prepar": [4, 9], "keep": 4, "mind": 4, "result": 4, "export": 5, "databas": [5, 53], "dump": 5, "csv": 5, "json": 5, "xml": 5, "frontend": 6, "gener": [7, 32, 35, 60], "authent": [7, 51], "import": [9, 15, 20, 57], "project": [9, 41], "class": [9, 44, 47], "field": [9, 14, 16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 29, 39, 41], "place": [9, 24, 30, 36], "option": [9, 58], "after": 9, "admin": 10, "mail": 11, "map": [12, 36, 57], "modul": [13, 60], "user": [14, 20, 41, 42, 43, 66], "form": [14, 16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 29, 70], "group": 14, "vocab": 15, "edit": 15, "show": 15, "vocabulari": 15, "actor": [16, 33], "can": [16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 29, 41], "via": [16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 29, 41], "tab": [16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 29], "artifact": [17, 30, 31, 34], "event": [18, 31, 33, 34, 35], "acquisit": 18, "creation": [18, 31], "modif": 18, "move": [18, 33, 34, 35], "product": 18, "featur": [19, 30, 42], "super": [19, 21, 28], "set": 20, "logo": 20, "imag": [20, 42, 55], "preview": 20, "human": [21, 30], "remain": [21, 30], "administr": 24, "unit": [24, 28, 30], "histor": [24, 32], "ad": [24, 30, 33, 34, 41, 57], "multipl": [24, 31, 41], "citat": 25, "exampl": [25, 32], "id": 26, "precis": [26, 39], "configur": [26, 73], "sourc": [27, 34], "stratigraph": [28, 30], "anthropolog": [28, 42, 54], "analys": [28, 42, 54], "standard": 29, "custom": [29, 41], "valu": [9, 29], "make": [20, 29, 41], "requir": 29, "archaeolog": [30, 32], "new": [30, 31, 35, 36, 38, 40, 57], "site": 30, "an": [30, 31, 34, 40], "add": [31, 40], "creator": 31, "locat": [31, 33], "journei": 33, "letter": 34, "sender": 34, "recipi": 34, "instruct": 35, "how": [20, 36, 39, 41], "us": 36, "geonam": [26, 36, 57], "profess": [37, 41], "time": [39, 48], "span": 39, "where": 39, "find": 39, "input": 39, "enter": [39, 41], "activ": [39, 66], "hour": 39, "minut": 39, "second": 39, "tree": 40, "exist": 40, "faq": 41, "manag": [20, 41, 42], "case": [41, 58], "studi": 41, "instanc": 41, "share": [20, 41], "doe": 41, "access": [41, 51], "work": 41, "why": 41, "t": 41, "free": 41, "text": 41, "longer": 41, "format": 41, "model": [42, 45], "interfac": [42, 43], "annot": [3, 42, 55], "exchang": 42, "radiocarbon": [42, 48, 61], "openatla": [43, 47, 48], "manual": 43, "document": 43, "help": 43, "cidoc": 44, "crm": 44, "properti": 44, "checker": 46, "shortcut": 48, "oa7": 48, "ha": 48, "relationship": 48, "oa8": 48, "appear": 48, "first": 48, "oa9": 48, "last": 48, "e77": 48, "persist": [48, 63], "item": 48, "e21": 48, "person": 48, "e2": 48, "tempor": 48, "introduct": 51, "quick": 51, "start": 51, "guid": 51, "1": 51, "ui": 51, "2": 51, "url": 51, "get": 51, "version": [51, 63], "endpoint": 51, "paramet": 51, "error": [51, 63, 64], "handl": 51, "proxi": 51, "applic": 52, "structur": [52, 53], "sex": 54, "estim": 54, "usag": [26, 55], "tool": 56, "navig": [57, 58], "search": [57, 62], "wkt": [9, 57], "geometri": 57, "overlai": 57, "network": 58, "visual": 58, "2d": 58, "3d": 58, "In": 58, "perform": 58, "issu": 58, "download": 58, "note": 59, "profil": 60, "chang": 60, "password": [60, 66], "displai": [60, 63], "browser": 63, "refresh": 63, "your": 63, "javascript": 63, "If": 63, "problem": 63, "code": 64, "403": 64, "forbidden": 64, "404": 64, "found": [64, 66], "418": 64, "i": [64, 66], "m": 64, "teapot": 64, "troubleshoot": 65, "login": 66, "wrong": 66, "No": 66, "thi": 66, "too": 66, "mani": 66, "attempt": 66, "alia": [9, 67], "descript": 69, "menu": 71, "tabl": 73, "coordin": 9, "extern": 9, "possibl": 9, "hierarchi": 9, "public": [20, 41], "avail": [20, 41], "criteria": [20, 41], "softwar": [20, 41], "includ": 26, "default": 26, "wikidata": 26, "gnd": 26, "invalid": 3, "involv": 3, "preced": 3, "sub": 3}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"API": [[0, "api"], [51, "api"]], "ARCHE": [[1, "arche"]], "Overview": [[1, "overview"], [50, "overview"]], "Fetch": [[1, "fetch"]], "Data from ARCHE": [[1, "data-from-arche"]], "Automatically created entities": [[1, "automatically-created-entities"]], "Type": [[1, "entity-type"], [3, "type"], [29, "type"]], "Reference System": [[1, "entity-reference-system"], [26, "reference-system"]], "Entity": [[1, "entity-index"], [22, "entity"]], "Content": [[2, "content"]], "Data integrity checks": [[3, "data-integrity-checks"]], "Orphans": [[3, "orphans"], [3, "id1"]], "Entities without links": [[3, "entities-without-links"]], "Missing files": [[3, "missing-files"]], "Orphaned files": [[3, "orphaned-files"]], "Orphaned IIIF files": [[3, "orphaned-iiif-files"]], "Orphaned annotations": [[3, "orphaned-annotations"]], "Orphaned subunits": [[3, "orphaned-subunits"]], "Circular dependencies": [[3, "circular-dependencies"]], "Dates": [[3, "dates"], [9, "dates"], [48, "dates"]], "Invalid dates": [[3, "invalid-dates"]], "Invalid link dates": [[3, "invalid-link-dates"]], "Invalid involvement dates": [[3, "invalid-involvement-dates"]], "Invalid preceding dates": [[3, "invalid-preceding-dates"]], "Invalid sub dates": [[3, "invalid-sub-dates"]], "Check links": [[3, "check-links"]], "Check link duplicates": [[3, "check-link-duplicates"]], "Check similar names": [[3, "check-similar-names"]], "Execute SQL": [[4, "execute-sql"]], "Preparation": [[4, "preparation"]], "Keep in mind": [[4, "keep-in-mind"]], "Result": [[4, "result"]], "Export": [[5, "export"]], "Export SQL": [[5, "export-sql"], [5, "id1"]], "Export database dump": [[5, "export-database-dump"]], "Export CSV": [[5, "export-csv"]], "Export JSON": [[5, "export-json"]], "Export XML": [[5, "export-xml"]], "Frontend": [[6, "frontend"]], "General": [[7, "general"], [32, "general"], [60, "general"]], "Authentication": [[7, "authentication"]], "IIIF": [[8, "iiif"]], "Import": [[9, "import"], [15, "import"]], "Preparations": [[9, "preparations"]], "Projects": [[9, "projects"]], "Import class": [[9, "import-class"]], "Possible import fields": [[9, "possible-import-fields"]], "Alias": [[9, "alias"], [67, "alias"]], "Types": [[9, "types"], [40, "types"]], "Value types": [[9, "value-types"], [29, "value-types"]], "References": [[9, "references"], [49, "references"], [49, "id1"]], "WKT coordinates": [[9, "wkt-coordinates"]], "External reference systems": [[9, "external-reference-systems"]], "Place hierarchy": [[9, "place-hierarchy"]], "Import options": [[9, "import-options"]], "After the import": [[9, "after-the-import"]], "Admin": [[10, "admin"]], "Mail": [[11, "mail"]], "Map": [[12, "map"], [57, "map"]], "Modules": [[13, "modules"], [60, "modules"]], "User": [[14, "user"]], "Form fields": [[14, "form-fields"], [16, "form-fields"], [17, "form-fields"], [18, "form-fields"], [19, "form-fields"], [20, "form-fields"], [21, "form-fields"], [24, "form-fields"], [25, "form-fields"], [27, "form-fields"], [28, "form-fields"], [29, "form-fields"]], "Groups": [[14, "groups"]], "Vocabs": [[15, "vocabs"]], "Edit": [[15, "edit"]], "Show vocabularies": [[15, "show-vocabularies"]], "Actor": [[16, "actor"]], "Can be linked via tabs to": [[16, "can-be-linked-via-tabs-to"], [17, "can-be-linked-via-tabs-to"], [18, "can-be-linked-via-tabs-to"], [19, "can-be-linked-via-tabs-to"], [20, "can-be-linked-via-tabs-to"], [21, "can-be-linked-via-tabs-to"], [24, "can-be-linked-via-tabs-to"], [25, "can-be-linked-via-tabs-to"], [27, "can-be-linked-via-tabs-to"], [28, "can-be-linked-via-tabs-to"], [29, "can-be-linked-via-tabs-to"]], "Artifact": [[17, "artifact"]], "Event": [[18, "event"]], "Acquisition": [[18, "acquisition"]], "Creation": [[18, "creation"]], "Modification": [[18, "modification"]], "Move": [[18, "move"]], "Production": [[18, "production"]], "Feature": [[19, "feature"]], "Super and subunits": [[19, "super-and-subunits"], [21, "super-and-subunits"], [28, "super-and-subunits"]], "File": [[20, "file"]], "Form fields important for public sharing": [[20, "form-fields-important-for-public-sharing"]], "Settings": [[20, "settings"]], "Logo": [[20, "logo"]], "Image preview": [[20, "image-preview"]], "How to make files available for the public": [[20, "how-to-make-files-available-for-the-public"], [41, "how-to-make-files-available-for-the-public"]], "Criteria checked by the software": [[20, "criteria-checked-by-the-software"], [41, "criteria-checked-by-the-software"]], "Criteria checked by managers and users": [[20, "criteria-checked-by-managers-and-users"]], "Human remains": [[21, "human-remains"]], "Place": [[24, "place"]], "Administrative Unit": [[24, "administrative-unit"]], "Historical Place": [[24, "historical-place"]], "Places and their subunits": [[24, "places-and-their-subunits"]], "Adding multiple places": [[24, "adding-multiple-places"]], "Reference": [[25, "reference"]], "Citation example": [[25, "citation-example"]], "Included by default": [[26, "included-by-default"]], "Wikidata": [[26, "wikidata"]], "GeoNames": [[26, "geonames"], [57, "id1"]], "GND": [[26, "gnd"]], "Usage": [[26, "usage"], [55, "usage"]], "ID": [[26, "id"]], "Precision": [[26, "precision"]], "Configuration": [[26, "configuration"], [73, "configuration"]], "Source": [[27, "source"]], "Stratigraphic unit": [[28, "stratigraphic-unit"]], "Anthropological analyses": [[28, "anthropological-analyses"]], "Standard types": [[29, "standard-types"]], "Custom types": [[29, "custom-types"]], "Making types required": [[29, "making-types-required"]], "Archaeological data": [[30, "archaeological-data"]], "Adding a new place": [[30, "adding-a-new-place"]], "Adding a feature to the site": [[30, "adding-a-feature-to-the-site"]], "Adding a stratigraphic unit to the feature": [[30, "adding-a-stratigraphic-unit-to-the-feature"]], "Adding an artifact to the stratigraphic unit": [[30, "adding-an-artifact-to-the-stratigraphic-unit"]], "Adding human remains to the stratigraphic unit": [[30, "adding-human-remains-to-the-stratigraphic-unit"]], "Artifacts": [[31, "artifacts"]], "Add a new artifact": [[31, "add-a-new-artifact"]], "Add a reference to the artifact": [[31, "add-a-reference-to-the-artifact"]], "Add a file to the artifact": [[31, "add-a-file-to-the-artifact"]], "Link a creation event": [[31, "link-a-creation-event"]], "Add a creator to the creation event": [[31, "add-a-creator-to-the-creation-event"]], "Add multiple locations to an artifact": [[31, "add-multiple-locations-to-an-artifact"]], "Examples": [[32, "examples"]], "Archaeological": [[32, "archaeological"]], "Historical": [[32, "historical"]], "Journey": [[33, "journey"]], "Adding actors": [[33, "adding-actors"]], "Adding locations": [[33, "adding-locations"]], "Creating the move event": [[33, "creating-the-move-event"]], "Link actors to the journey": [[33, "link-actors-to-the-journey"]], "Letters": [[34, "letters"]], "Adding an artifact": [[34, "adding-an-artifact"]], "Adding a source": [[34, "adding-a-source"]], "Adding the move event": [[34, "adding-the-move-event"]], "Adding sender and recipient": [[34, "adding-sender-and-recipient"]], "Move events": [[35, "move-events"]], "Create a new move event - general instruction": [[35, "create-a-new-move-event-general-instruction"]], "Places": [[36, "places"]], "Create a new place": [[36, "create-a-new-place"]], "How to use the map": [[36, "how-to-use-the-map"]], "Reference Systems - GeoNames": [[36, "reference-systems-geonames"]], "Profession": [[37, "profession"]], "References Systems": [[38, "references-systems"]], "Create a new reference system": [[38, "create-a-new-reference-system"]], "Time Spans": [[39, "time-spans"]], "Where to find the input fields": [[39, "where-to-find-the-input-fields"]], "How to enter dates and time spans": [[39, "how-to-enter-dates-and-time-spans"]], "Precise dates": [[39, "precise-dates"]], "Time spans": [[39, "id1"]], "Activate hours, minutes, and seconds": [[39, "activate-hours-minutes-and-seconds"]], "Create a new type tree": [[40, "create-a-new-type-tree"]], "Add a type to an existing type tree": [[40, "add-a-type-to-an-existing-type-tree"]], "FAQ": [[41, "faq"]], "How to manage multiple projects or case studies": [[41, "how-to-manage-multiple-projects-or-case-studies"]], "Multiple instances": [[41, "multiple-instances"]], "Shared instance": [[41, "shared-instance"]], "How does data access work": [[41, "how-does-data-access-work"]], "How to enter professions": [[41, "how-to-enter-professions"]], "Criteria checked by users": [[41, "criteria-checked-by-users"]], "Why can\u2019t a free text field be added via custom types": [[41, "why-can-t-a-free-text-field-be-added-via-custom-types"]], "Why can\u2019t longer texts be formatted": [[41, "why-can-t-longer-texts-be-formatted"]], "Features": [[42, "features"]], "Model": [[42, "model"], [45, "model"]], "User Interface": [[42, "user-interface"]], "IIIF Integration": [[42, "iiif-integration"]], "Image Annotation": [[42, "image-annotation"]], "Data Exchange": [[42, "data-exchange"]], "User Management": [[42, "user-management"]], "Anthropological Analyses": [[42, "anthropological-analyses"], [54, "anthropological-analyses"]], "Radiocarbon Dating": [[42, "radiocarbon-dating"], [61, "radiocarbon-dating"]], "OpenAtlas manual": [[43, "openatlas-manual"]], "User interface": [[43, null]], "Documentation": [[43, null]], "Help": [[43, null]], "CIDOC CRM": [[44, "cidoc-crm"]], "CIDOC classes": [[44, "cidoc-classes"]], "CIDOC Properties": [[44, "cidoc-properties"]], "Link checker": [[46, "link-checker"]], "OpenAtlas classes": [[47, "openatlas-classes"]], "OpenAtlas shortcuts": [[48, "openatlas-shortcuts"]], "OA7 - has relationship to": [[48, "oa7-has-relationship-to"]], "OA8 - appears for the first time in": [[48, "oa8-appears-for-the-first-time-in"]], "OA9 - appears for the last time in": [[48, "oa9-appears-for-the-last-time-in"]], "E77 - Persistent Item": [[48, "e77-persistent-item"]], "E21 Person": [[48, "e21-person"]], "E2 Temporal Entity": [[48, "e2-temporal-entity"]], "Radiocarbon dating type": [[48, "radiocarbon-dating-type"]], "Reference Systems": [[49, "reference-systems"]], "References and Files": [[49, "references-and-files"]], "Introduction": [[51, "introduction"]], "Quick Start Guide": [[51, "quick-start-guide"]], "1. UI access": [[51, "ui-access"]], "2. URL / GET access": [[51, "url-get-access"]], "Versioning": [[51, "versioning"]], "Endpoints": [[51, "endpoints"]], "Parameters": [[51, "parameters"]], "Error handling": [[51, "error-handling"]], "Proxy": [[51, "proxy"]], "Authentication guide": [[51, "authentication-guide"]], "Application Structure": [[52, "application-structure"]], "Database Structure": [[53, "database-structure"]], "Sex Estimation": [[54, "sex-estimation"]], "Image annotation": [[55, "image-annotation"]], "Tools": [[56, "tools"]], "Navigation": [[57, "navigation"], [58, "navigation"]], "Search": [[57, "search"], [62, "search"]], "WKT import": [[57, "wkt-import"]], "Adding new geometries": [[57, "adding-new-geometries"]], "Map Overlay": [[57, "map-overlay"]], "Network visualization": [[58, "network-visualization"]], "2D": [[58, "d"]], "3D": [[58, "id1"]], "Options": [[58, "options"]], "In case of performance issues": [[58, "in-case-of-performance-issues"]], "Download": [[58, "download"]], "Notes": [[59, "notes"]], "Profile": [[60, "profile"]], "Change password": [[60, "change-password"]], "Display": [[60, "display"]], "Display Errors": [[63, "display-errors"]], "Browser Version": [[63, "browser-version"]], "Refresh your Browser": [[63, "refresh-your-browser"]], "JavaScript": [[63, "javascript"]], "If the problem persists": [[63, "if-the-problem-persists"]], "Error Codes": [[64, "error-codes"]], "403 - Forbidden": [[64, "forbidden"]], "404 - File not found": [[64, "file-not-found"]], "418 - I\u2019m a teapot": [[64, "im-a-teapot"]], "Troubleshooting": [[65, "troubleshooting"]], "Login": [[66, "login"]], "Wrong Password": [[66, "wrong-password"]], "No user with this name found.": [[66, "no-user-with-this-name-found"]], "This user is not activated.": [[66, "this-user-is-not-activated"]], "Too many login attempts.": [[66, "too-many-login-attempts"]], "Date": [[68, "date"]], "Description": [[69, "description"]], "Form": [[70, "form"]], "Menu": [[71, "menu"]], "Name": [[72, "name"]], "Table": [[73, "table"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["admin/api", "admin/arche", "admin/content", "admin/data_integrity_checks", "admin/execute_sql", "admin/export", "admin/frontend", "admin/general", "admin/iiif", "admin/import", "admin/index", "admin/mail", "admin/map", "admin/modules", "admin/user", "admin/vocabs", "entity/actor", "entity/artifact", "entity/event", "entity/feature", "entity/file", "entity/human_remains", "entity/index", "entity/navigation", "entity/place", "entity/reference", "entity/reference_system", "entity/source", "entity/stratigraphic_unit", "entity/type", "examples/archaeological_data", "examples/artifacts", "examples/index", "examples/journey", "examples/letters", "examples/move_event", "examples/places", "examples/profession", "examples/reference_systems", "examples/time_spans", "examples/types", "faq", "features", "index", "model/cidoc_crm", "model/index", "model/link_checker", "model/openatlas_classes", "model/openatlas_shortcuts", "model/references", "overview", "technical/api", "technical/application_structure", "technical/database_structure", "tools/anthropological_analyses", "tools/image_annotation", "tools/index", "tools/map", "tools/network", "tools/notes", "tools/profile", "tools/radiocarbon_dating", "tools/search", "troubleshooting/display", "troubleshooting/error_codes", "troubleshooting/index", "troubleshooting/login", "ui/alias", "ui/date", "ui/description", "ui/form", "ui/menu", "ui/name", "ui/table"], "filenames": ["admin/api.rst", "admin/arche.rst", "admin/content.rst", "admin/data_integrity_checks.rst", "admin/execute_sql.rst", "admin/export.rst", "admin/frontend.rst", "admin/general.rst", "admin/iiif.rst", "admin/import.rst", "admin/index.rst", "admin/mail.rst", "admin/map.rst", "admin/modules.rst", "admin/user.rst", "admin/vocabs.rst", "entity/actor.rst", "entity/artifact.rst", "entity/event.rst", "entity/feature.rst", "entity/file.rst", "entity/human_remains.rst", "entity/index.rst", "entity/navigation.rst", "entity/place.rst", "entity/reference.rst", "entity/reference_system.rst", "entity/source.rst", "entity/stratigraphic_unit.rst", "entity/type.rst", "examples/archaeological_data.rst", "examples/artifacts.rst", "examples/index.rst", "examples/journey.rst", "examples/letters.rst", "examples/move_event.rst", "examples/places.rst", "examples/profession.rst", "examples/reference_systems.rst", "examples/time_spans.rst", "examples/types.rst", "faq.rst", "features.rst", "index.rst", "model/cidoc_crm.rst", "model/index.rst", "model/link_checker.rst", "model/openatlas_classes.rst", "model/openatlas_shortcuts.rst", "model/references.rst", "overview.rst", "technical/api.rst", "technical/application_structure.rst", "technical/database_structure.rst", "tools/anthropological_analyses.rst", "tools/image_annotation.rst", "tools/index.rst", "tools/map.rst", "tools/network.rst", "tools/notes.rst", "tools/profile.rst", "tools/radiocarbon_dating.rst", "tools/search.rst", "troubleshooting/display.rst", "troubleshooting/error_codes.rst", "troubleshooting/index.rst", "troubleshooting/login.rst", "ui/alias.rst", "ui/date.rst", "ui/description.rst", "ui/form.rst", "ui/menu.rst", "ui/name.rst", "ui/table.rst"], "titles": ["API", "ARCHE", "Content", "Data integrity checks", "Execute SQL", "Export", "Frontend", "General", "IIIF", "Import", "Admin", "Mail", "Map", "Modules", "User", "Vocabs", "Actor", "Artifact", "Event", "Feature", "File", "Human remains", "Entity", "<no title>", "Place", "Reference", "Reference System", "Source", "Stratigraphic unit", "Type", "Archaeological data", "Artifacts", "Examples", "Journey", "Letters", "Move events", "Places", "Profession", "References Systems", "Time Spans", "Types", "FAQ", "Features", "OpenAtlas manual", "CIDOC CRM", "Model", "Link checker", "OpenAtlas classes", "OpenAtlas shortcuts", "References", "Overview", "API", "Application Structure", "Database Structure", "Anthropological Analyses", "Image annotation", "Tools", "Map", "Network visualization", "Notes", "Profile", "Radiocarbon Dating", "Search", "Display Errors", "Error Codes", "Troubleshooting", "Login", "Alias", "Date", "Description", "Form", "Menu", "Name", "Table"], "terms": {"descript": [0, 1, 9, 13, 16, 17, 18, 19, 20, 21, 24, 25, 26, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 40, 41, 44, 48, 49, 51, 55, 57, 62, 70, 73], "public": [0, 8, 26, 43, 49, 51, 53, 59], "default": [0, 3, 7, 8, 9, 12, 13, 14, 15, 20, 29, 38, 39, 52, 57, 58, 59, 60], "off": [0, 73], "If": [0, 1, 3, 4, 6, 9, 15, 17, 20, 29, 30, 31, 33, 34, 35, 36, 38, 39, 41, 49, 51, 57, 58, 62, 66, 68], "you": [0, 3, 4, 6, 8, 9, 12, 13, 14, 15, 17, 20, 22, 24, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 51, 52, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 71, 73], "turn": [0, 39, 66, 68], "link": [0, 1, 2, 5, 6, 9, 10, 15, 22, 26, 30, 34, 35, 36, 37, 38, 41, 42, 43, 44, 45, 48, 49, 50, 51, 53, 55, 57, 58, 60, 63, 64, 66, 71], "file": [0, 1, 5, 8, 9, 10, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 35, 42, 43, 47, 52, 55, 57, 60], "licens": [0, 1, 20, 26, 41], "can": [0, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 22, 26, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 55, 57, 58, 59, 60, 61, 62, 63, 66, 67, 68, 69, 71, 73], "access": [0, 4, 6, 8, 12, 14, 16, 17, 18, 20, 23, 24, 25, 26, 27, 29, 40, 42, 43, 54, 60, 61, 64], "even": [3, 9, 29, 60, 62], "without": [0, 8, 9, 10, 11, 29, 36, 41, 44, 45, 51, 58, 62], "log": [0, 2, 7, 14, 50, 60, 63], "thi": [0, 3, 4, 5, 6, 8, 9, 14, 17, 20, 22, 24, 26, 29, 30, 31, 33, 34, 35, 36, 38, 39, 41, 42, 43, 44, 45, 47, 48, 49, 51, 52, 54, 55, 57, 58, 61, 62, 63, 64, 65, 68], "might": [0, 3, 4, 20, 35, 39, 41], "us": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14, 15, 18, 19, 20, 21, 24, 26, 28, 29, 30, 31, 33, 34, 35, 37, 38, 39, 40, 41, 42, 44, 45, 47, 48, 49, 51, 52, 53, 54, 55, 57, 62, 63, 64, 67, 68, 69, 70, 72, 73], "want": [0, 3, 9, 29, 30, 31, 39, 40, 41, 58], "data": [0, 4, 5, 9, 10, 14, 19, 21, 22, 24, 26, 28, 29, 32, 33, 34, 35, 36, 38, 39, 40, 43, 44, 45, 48, 51, 53, 57, 58, 59, 61, 62, 69, 70], "open": [8, 26, 34, 35, 38, 41, 42, 43, 51, 55, 57], "anywai": 44, "allow": [0, 3, 6, 7, 15, 18, 20, 29, 39, 41, 42, 51, 55, 62, 72], "other": [0, 3, 9, 14, 16, 18, 20, 24, 26, 30, 31, 33, 35, 36, 38, 41, 42, 44, 51, 52, 58, 59, 60], "system": [0, 5, 10, 14, 16, 17, 18, 20, 21, 22, 24, 29, 32, 41, 42, 43, 44, 45, 53, 68, 69], "note": [4, 8, 21, 30, 31, 33, 35, 36, 38, 39, 40, 42, 43, 44, 48, 50, 51, 53, 56], "The": [1, 3, 5, 8, 9, 11, 18, 20, 22, 26, 29, 30, 31, 32, 33, 34, 36, 37, 39, 41, 42, 44, 45, 47, 48, 49, 50, 51, 52, 54, 55, 57, 64, 71, 72], "still": [0, 18, 41, 51, 60], "request": [0, 7, 51, 64, 66], "from": [3, 9, 10, 11, 15, 18, 20, 22, 24, 26, 30, 31, 33, 34, 35, 36, 38, 39, 41, 42, 48, 49, 51, 52, 54, 57, 60, 62, 68], "browser": [0, 7, 20, 51, 52, 58], "where": [16, 18, 22, 27, 31, 33, 35, 36, 38, 41, 44, 45, 49, 51, 57, 58, 62, 68], "user": [0, 1, 3, 5, 7, 9, 10, 11, 13, 15, 26, 29, 30, 33, 34, 35, 36, 38, 40, 45, 47, 49, 51, 52, 53, 59, 60, 64, 71], "i": [0, 1, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 54, 55, 57, 58, 59, 60, 61, 62, 63, 68, 72], "ip": 0, "comput": [0, 20], "whitelist": 0, "Be": [5, 8, 20, 29, 41, 51, 55, 58], "awar": [5, 8, 20, 41, 51, 55, 58], "featur": [3, 4, 9, 12, 17, 21, 22, 24, 26, 28, 29, 31, 39, 43, 47, 54, 55, 60, 63], "onli": [1, 3, 4, 7, 8, 9, 14, 15, 16, 19, 24, 26, 28, 29, 38, 39, 40, 41, 45, 48, 51, 55, 57, 58, 59, 61, 62, 64, 68], "usabl": [26, 51, 69], "specif": [7, 9, 20, 26, 29, 32, 37, 40, 41, 42, 43, 44, 48, 51, 53, 57, 66], "dataset": [3, 49], "A": [0, 1, 3, 4, 5, 6, 15, 19, 20, 21, 24, 28, 29, 30, 31, 35, 36, 40, 41, 44, 49, 50, 51, 52, 63, 69], "resourc": [1, 38, 49], "centr": 1, "human": [1, 9, 16, 17, 22, 24, 28, 31, 42, 43, 44, 47, 51, 54], "servic": [1, 15, 26, 42], "aim": 1, "offer": [1, 9, 42, 55], "stabl": [1, 47, 51], "persist": [1, 47], "host": [1, 11, 26], "well": [1, 6, 21, 24, 30, 36, 39, 40, 41, 42, 44, 71], "dissemin": 1, "digit": [1, 8, 22, 39, 42, 44, 49], "research": [1, 29, 42, 61], "In": [1, 3, 5, 8, 14, 19, 20, 21, 24, 25, 28, 29, 30, 33, 34, 36, 37, 39, 41, 42, 47, 49, 51, 54, 55, 56, 61, 63, 65], "order": [1, 15, 30, 33, 35, 42, 48, 49], "import": [1, 3, 10, 14, 34, 36, 41, 42, 43, 44, 45, 52, 53, 56, 60, 72], "openatla": [1, 3, 5, 6, 8, 9, 15, 18, 19, 20, 21, 24, 26, 27, 28, 30, 35, 37, 38, 41, 42, 44, 45, 49, 51, 52, 53, 63, 68], "chang": [1, 6, 7, 11, 18, 20, 26, 29, 30, 31, 33, 36, 40, 41, 51, 56, 57, 58], "instanc": [1, 8, 9, 11, 15, 20, 38, 42, 44, 48, 51, 52, 53], "product": [1, 11, 15, 17, 20, 21, 31, 51, 54], "py": [1, 11, 15, 20, 44, 51, 52], "ar": [1, 2, 3, 4, 5, 7, 8, 9, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 57, 58, 59, 60, 62, 63, 64, 66, 68, 69, 70, 72, 73], "need": [1, 15, 29, 31, 41, 45, 49, 51, 52, 57], "ask": [1, 22, 41], "your": [0, 1, 3, 4, 9, 20, 32, 35, 36, 38, 39, 41, 50, 51, 57, 58, 59, 60, 64, 66, 73], "administr": [1, 9, 36], "further": [1, 9, 30, 31, 34, 36, 38, 40, 47, 49, 51, 57], "detail": [1, 3, 6, 7, 9, 14, 16, 17, 18, 20, 22, 23, 24, 25, 26, 27, 29, 40, 41, 42, 44, 45, 51, 55, 58, 68], "id": [1, 6, 9, 36, 38, 49, 51, 57, 61, 64], "0": [1, 20, 39, 41, 51, 54, 68], "top": [1, 2, 15, 41, 44, 49, 57, 58, 60, 63, 71, 73], "collect": [1, 15, 39], "project": [1, 3, 6, 10, 20, 26, 32, 39, 40, 42, 43, 53, 60, 66], "acdh": [1, 15], "topcollect": 1, "url": [1, 6, 8, 12, 15, 20, 25, 26, 38, 41, 44, 49, 52], "http": [1, 6, 8, 15, 26, 38, 44, 51], "curat": 1, "dev": 1, "oeaw": 1, "ac": 1, "base": [1, 15, 21, 26, 36, 38, 42, 45, 48, 51, 53, 57, 68], "get": [1, 8, 9, 33, 36, 37, 38, 44, 59, 66], "button": [1, 3, 5, 16, 17, 18, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 51, 54, 55, 57, 58, 60, 61, 66, 71, 73], "displai": [1, 2, 3, 4, 6, 7, 9, 11, 14, 15, 20, 25, 26, 29, 36, 38, 40, 43, 45, 47, 50, 51, 52, 56, 59, 61, 65, 73], "admin": [1, 4, 5, 6, 9, 14, 15, 20, 26, 38, 43, 51, 57, 59, 60], "menu": [1, 8, 22, 27, 29, 30, 31, 33, 34, 35, 36, 40], "abov": [1, 3, 31, 35, 42, 60, 63], "provid": [1, 8, 9, 15, 25, 26, 39, 41, 51, 54, 60, 61, 62, 63, 64], "click": [1, 3, 4, 5, 14, 15, 16, 17, 18, 20, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 50, 54, 55, 57, 60, 66, 68, 73], "section": [1, 39, 51], "belong": 24, "manag": [1, 5, 9, 14, 15, 26, 29, 38, 43, 52, 59, 60, 66, 68], "group": [1, 9, 10, 15, 16, 18, 26, 29, 31, 33, 35, 36, 37, 38, 40, 41, 42, 53, 55, 64], "call": [3, 19, 41, 51, 52, 54], "list": [1, 3, 5, 9, 16, 17, 18, 20, 23, 24, 25, 26, 27, 30, 31, 33, 34, 35, 36, 38, 41, 42, 49, 50, 51, 55], "tabl": [1, 7, 9, 14, 15, 16, 17, 18, 20, 23, 24, 25, 27, 29, 42, 48, 49, 50, 60, 72], "artifact": [1, 3, 9, 15, 16, 18, 21, 22, 24, 27, 28, 29, 32, 33, 35, 39, 40, 43, 55, 71], "which": [3, 8, 9, 12, 15, 17, 18, 19, 20, 21, 24, 25, 28, 29, 33, 35, 36, 38, 39, 40, 41, 42, 44, 47, 49, 51, 52, 55, 57, 58, 62, 63, 66, 68, 71, 72], "wa": [1, 9, 16, 22, 25, 26, 31, 35, 36, 39, 45, 48, 51, 52, 55, 60, 66, 68], "shown": [1, 3, 4, 5, 6, 9, 20, 25, 26, 29, 36, 38, 41, 58, 60, 68], "all": [1, 5, 9, 11, 12, 14, 15, 20, 30, 31, 33, 34, 36, 38, 39, 40, 41, 44, 47, 48, 49, 51, 52, 60, 63, 69], "metadata": 1, "gather": 1, "exif": 1, "endpoint": [1, 15, 43], "first": [1, 3, 4, 9, 11, 20, 21, 22, 30, 31, 36, 39, 42, 51, 68], "imag": [1, 7, 8, 30, 31, 41, 43, 49, 52, 53, 56, 57, 58, 60], "2_jpg": 1, "addition": [1, 35, 62], "correspond": [1, 3, 8, 9, 26, 29, 36, 38, 39, 47, 60], "png": [1, 8, 20, 58], "4_orthophoto": 1, "taken": [1, 48], "necessari": [1, 20, 30, 38, 40, 41, 49, 61], "new": [1, 9, 13, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 27, 28, 29, 33, 34, 37, 41, 55, 56, 60, 66], "person": [1, 3, 4, 9, 16, 18, 22, 26, 31, 33, 34, 35, 37, 41, 42, 49, 55, 59, 60, 62], "etc": [1, 3, 7, 19, 21, 24, 28, 30, 37, 45, 49, 51, 52, 71], "ad": [1, 14, 15, 17, 18, 21, 26, 29, 31, 35, 38, 39, 40, 43, 51, 55, 56, 59, 61, 62], "dure": [1, 3, 31, 45], "process": [1, 5, 7, 9, 20, 41, 52], "custom": [1, 5, 9, 14, 15, 20, 30, 40, 43], "hierarchi": [1, 5, 10, 15, 18, 24, 29], "relev": [1, 30], "actor": [1, 17, 18, 20, 21, 22, 24, 25, 27, 29, 31, 34, 35, 37, 39, 43, 44, 48, 60, 67, 68], "e21": [1, 16, 49], "involv": [1, 10, 30, 31, 33, 34], "e65": [1, 18], "creation": [1, 7, 24, 30, 34, 38, 40], "p": [1, 44], "cidoc_ent": 1, "e12": [1, 18, 48], "event": [1, 3, 16, 17, 19, 20, 21, 22, 24, 25, 27, 28, 29, 30, 32, 39, 43, 48], "addit": [1, 14, 30, 33, 36, 38, 39, 41, 42, 51, 54, 59, 68, 69], "copyright": [1, 49], "name": [1, 5, 7, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 38, 39, 40, 41, 44, 47, 48, 49, 60, 62, 70, 73], "e22": [1, 17, 48], "made": [1, 11, 17, 26, 31, 33, 36, 40, 41, 47, 52], "object": [1, 8, 17, 21, 27, 31, 34, 36, 42, 45, 47, 49, 57], "graffito": 1, "iptc": 1, "objectnam": 1, "xmp": 1, "p67": [1, 49], "e32": [1, 26, 49], "e53": [1, 24, 48], "place": [1, 3, 10, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 47, 48, 49, 51, 57, 60, 62, 63, 67, 71], "locat": [1, 16, 18, 19, 24, 28, 34, 35, 36, 42, 44, 51, 52, 57, 66], "p53": 1, "gpslatitud": 1, "gpslongitud": 1, "date": [1, 5, 10, 14, 16, 17, 18, 19, 21, 24, 28, 29, 30, 31, 33, 34, 35, 36, 37, 40, 43, 56, 60, 62, 63, 70], "created": 1, "p11": [1, 44, 48], "p108": 1, "p14": 1, "p92": [1, 48], "e31": [1, 20, 25, 47, 49], "document": [1, 9, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 31, 33, 47, 48, 49, 51, 67, 69], "p2": [1, 44, 48], "artist": 1, "text": [2, 5, 9, 14, 25, 27, 29, 31, 33, 34, 35, 36, 38, 39, 40, 43, 55, 57, 62, 68], "avail": [2, 4, 5, 8, 9, 13, 15, 16, 26, 30, 34, 35, 36, 37, 38, 40, 42, 43, 44, 47, 49, 51, 57, 58, 62, 73], "languag": [2, 7, 15, 27, 36, 60, 71], "here": [3, 9, 13, 17, 20, 21, 24, 29, 31, 32, 33, 35, 36, 38, 39, 40, 41, 42, 44, 45, 47, 52, 55, 60, 63, 64, 65, 68], "intro": 2, "start": [2, 3, 5, 9, 18, 26, 33, 34, 35, 36, 38, 39, 43, 45, 63, 71], "page": [2, 4, 6, 9, 13, 16, 17, 18, 20, 23, 24, 25, 26, 27, 31, 35, 38, 39, 40, 44, 45, 49, 50, 51, 54, 58, 60, 63, 64, 71, 73], "befor": [2, 3, 9, 20, 30, 34, 39, 51, 58, 68], "contact": [2, 11, 66], "site": [2, 6, 7, 19, 20, 26, 31, 41, 51, 55, 59, 60, 63, 64], "e": [2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 48, 49, 51, 52, 53, 55, 57, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 72], "g": [2, 3, 4, 5, 6, 8, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 37, 38, 39, 40, 41, 44, 45, 48, 49, 51, 52, 53, 55, 57, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 72], "inform": [2, 3, 7, 9, 14, 17, 18, 20, 21, 22, 24, 26, 29, 30, 31, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 49, 51, 52, 54, 57, 60, 61, 68, 69], "websit": [2, 6, 25, 26, 38, 43, 52, 53], "maintain": [2, 42, 45], "legal": 2, "notic": [2, 7, 51], "about": [2, 4, 9, 14, 26, 35, 36, 41, 43, 68], "institut": [2, 16, 37], "citat": [2, 30], "exampl": [2, 3, 5, 6, 9, 11, 18, 21, 22, 24, 26, 27, 28, 29, 31, 34, 35, 36, 38, 39, 42, 43, 47, 48, 49, 51, 52, 57, 68], "under": [25, 26, 36, 38, 51, 66], "form": [2, 10, 11, 26, 33, 35, 36, 37, 38, 39, 40, 41, 45, 47, 51, 52, 55, 60, 61, 68], "insert": [2, 4, 14, 25, 30, 31, 33, 34, 35, 36, 38, 40, 57, 60], "updat": [2, 3, 4, 9, 14, 25, 26, 29, 57, 60], "an": [2, 3, 4, 5, 6, 7, 8, 9, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 36, 37, 38, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 55, 57, 58, 59, 60, 61, 64, 68, 70, 72], "edit": [2, 10, 14, 16, 17, 18, 19, 20, 23, 24, 25, 26, 27, 28, 29, 31, 36, 37, 38, 39, 40, 42, 45, 47, 55, 60, 61, 62, 64], "bibliographi": [2, 25, 31, 47, 49], "cogwheel": 2, "icon": [2, 20, 26, 29, 57, 60], "right": [2, 9, 29, 49, 51, 57, 58, 60, 71, 72, 73], "corner": [2, 57, 71], "thei": [2, 3, 9, 20, 21, 22, 26, 28, 29, 33, 34, 40, 41, 44, 47, 49, 51, 54, 57, 59, 62, 63, 72], "contain": [2, 5, 9, 26, 27, 28, 49, 52, 62, 71, 73], "qualiti": [3, 8, 29, 42], "veri": [4, 24, 32, 41, 63], "u": [41, 64], "although": 41, "ultim": 3, "respons": [3, 20, 41, 51], "li": [3, 39], "editor": [14, 20, 29, 40, 57, 60], "we": [9, 41, 44, 45, 63], "take": [3, 4, 5, 9, 18, 26, 54], "great": 3, "care": 29, "avoid": [3, 41, 47], "enter": [3, 7, 9, 15, 16, 17, 18, 20, 21, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 42, 43, 50, 51, 55, 57, 60, 66, 68], "inconsist": 3, "technic": [3, 41, 44], "level": [3, 7, 12, 14, 30, 42, 49, 58, 60, 61], "interfac": [3, 29, 30, 45, 47, 51, 60, 64, 71], "possibl": [3, 10, 18, 20, 24, 26, 29, 31, 33, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 49, 51, 54, 57, 61, 71], "begin": [3, 4, 5, 9, 16, 31, 34, 39, 48, 62, 68], "later": [3, 9, 30, 31, 41], "than": [3, 9, 24, 29, 31, 41, 58], "end": [3, 6, 9, 16, 33, 34, 35, 36, 39, 44, 48, 51, 62, 68], "nevertheless": [3, 44, 45], "mistak": [3, 66], "happen": [3, 33, 68], "applic": [3, 4, 26, 31, 38, 40, 42, 43, 45, 47, 51, 57], "also": [3, 9, 11, 20, 26, 29, 30, 31, 33, 36, 38, 39, 40, 41, 42, 44, 45, 48, 49, 55, 58, 62, 66, 71], "when": [3, 5, 9, 14, 16, 17, 18, 19, 21, 24, 25, 26, 28, 29, 31, 34, 36, 38, 40, 41, 44, 50, 51, 57, 58, 59, 60, 62, 66, 68], "delet": [3, 4, 5, 14, 16, 17, 18, 20, 23, 24, 25, 26, 27, 29, 36, 55, 59], "outsid": 3, "becaus": [4, 20, 24, 26, 41, 44, 62, 63], "implement": [3, 41, 42, 49], "function": [3, 4, 9, 11, 12, 26, 36, 37, 42, 49, 52, 53], "describ": [3, 30, 31, 33, 34, 36, 37, 51], "below": [3, 4, 14, 30, 31, 37, 42, 45, 52, 55, 66, 73], "tab": [3, 7, 8, 26, 30, 31, 33, 34, 35, 37, 51, 55, 57, 59], "entri": [2, 3, 6, 9, 14, 16, 17, 18, 20, 21, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 45, 50, 58, 60, 70, 72, 73], "like": [3, 6, 9, 20, 22, 24, 26, 27, 29, 40, 41, 49, 52, 54, 63, 69], "could": [3, 38, 41, 49, 68, 72], "bug": [3, 63, 64], "seem": 3, "appear": [3, 5, 29, 38, 54], "regularli": 3, "again": [4, 31, 66], "known": [3, 9, 31, 36, 39, 42, 57], "pleas": [3, 9, 15, 18, 20, 21, 24, 30, 31, 32, 33, 35, 36, 38, 39, 40, 41, 51, 57, 63, 64, 65, 66], "report": [3, 63, 65], "issu": [3, 51, 56, 65], "have": [3, 6, 7, 8, 9, 17, 18, 20, 24, 26, 29, 30, 31, 33, 34, 38, 39, 40, 41, 44, 45, 49, 51, 57, 60, 62, 63, 64], "relat": [3, 16, 18, 20, 33, 36, 42, 44, 52, 53, 66], "That": [3, 24], "ok": [], "mayb": 64, "were": [3, 7, 18, 33, 47, 54, 60], "forgotten": [], "These": [3, 8, 26, 33, 42, 47, 48, 54], "creat": [3, 4, 5, 6, 8, 9, 10, 14, 17, 18, 22, 26, 29, 30, 31, 34, 37, 41, 47, 51, 57, 60, 62, 68], "sub": [8, 9, 10, 17, 18, 21, 29, 33, 35, 44, 49], "associ": [3, 9, 14, 24], "origin": [3, 27, 49, 60], "thefirst": [], "instal": [3, 8, 29, 41, 44, 51, 52], "never": 3, "most": [3, 18, 22, 41, 49, 51, 52, 66, 68], "itself": [3, 19, 21, 24, 28, 30, 39, 41], "doesn": [9, 18, 64, 65, 66], "t": [3, 4, 5, 9, 14, 18, 20, 29, 43, 44, 55, 59, 63, 64, 65, 66, 68, 72], "exist": [5, 6, 9, 19, 20, 24, 28, 29, 31, 37, 41, 44, 48, 51, 64, 66], "anymor": [14, 64, 66], "connect": [3, 24, 28, 30, 31, 37, 39, 41, 44, 46, 48, 49, 51, 57, 58], "marri": 3, "herself": [], "ha": [3, 4, 7, 8, 9, 15, 20, 24, 26, 30, 31, 36, 41, 44, 51, 58], "super": [3, 9, 17, 29, 40, 44], "It": [3, 9, 18, 20, 24, 26, 29, 31, 33, 34, 35, 39, 41, 44, 46, 51, 62, 63, 71, 72], "shouldn": [3, 64], "within": [3, 15, 17, 32, 37, 39, 42, 44, 45, 47, 57], "": [3, 4, 5, 6, 24, 30, 31, 33, 38, 40, 41, 42, 47, 48, 52, 54, 72], "invalid": [10, 51], "combin": [3, 9, 26, 38, 42, 44, 48, 49, 57], "should": [3, 8, 9, 34, 38, 39, 51, 58, 63], "clear": [], "up": [18, 20, 36, 41, 44, 62, 63, 66, 68], "otherwis": 3, "cannot": [14, 26, 29, 35, 39, 64], "won": [3, 9, 20, 41, 59], "save": [5, 14, 30, 31, 33, 34, 35, 36, 38, 61], "With": [29, 31, 34, 42, 46, 51, 57, 58, 66], "everi": [3, 4, 8, 30, 41], "cidoc": [3, 16, 17, 18, 19, 20, 21, 24, 25, 26, 27, 28, 29, 33, 42, 43, 45, 46, 47, 48, 52, 53, 60, 67, 68, 69], "valid": [3, 7, 9, 15, 26, 42, 48, 51, 57, 68], "amount": [3, 60, 61, 73], "some": [3, 4, 5, 26, 32, 38, 39, 41, 44, 45, 51, 52, 57, 58, 63, 64], "time": [3, 4, 5, 9, 20, 31, 32, 33, 34, 41, 44, 51, 60, 62, 68, 73], "alwai": [3, 9, 48], "case": [3, 4, 8, 9, 20, 25, 29, 30, 31, 33, 36, 39, 43, 49, 51, 52, 56, 59, 60, 62, 63, 65, 66], "afterward": [3, 30, 33], "found": [3, 9, 24, 29, 31, 35, 36, 38, 39, 40, 44, 45, 47, 51, 62, 71], "dealt": [], "There": [3, 9, 20, 40, 41, 44, 60, 63, 69], "actual": 39, "two": [3, 9, 39, 41, 48, 51], "one": [3, 4, 9, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 38, 41, 48, 51, 58, 60, 62, 68, 72], "ident": 3, "safe": [], "test": [3, 4, 8, 11, 46, 52], "multipl": [3, 4, 8, 9, 15, 20, 29, 30, 33, 36, 40, 42, 43, 49, 73], "defin": [12, 14, 20, 25, 33, 44, 48, 49, 52, 58, 60], "singl": [3, 15, 21, 29, 40, 51], "castl": 3, "citi": [3, 24, 26], "would": [3, 6, 9, 17, 19, 24, 26, 30, 31, 34, 41, 44, 63], "see": [8, 9, 14, 21, 22, 24, 26, 28, 31, 33, 34, 35, 36, 37, 38, 40, 42, 45, 47, 51, 55, 58, 60, 63, 64, 66], "anybodi": 59, "option": [3, 8, 10, 14, 26, 31, 36, 41, 56, 57, 60, 62, 69], "look": [3, 6, 9, 18, 24, 26, 33, 35, 41, 44], "remov": [3, 26], "wrong": 3, "ones": [3, 29, 33, 36, 37, 60], "besid": [20, 68], "last": [3, 4, 14, 36, 62], "column": [3, 9, 57], "both": [20, 68], "find": [3, 9, 21, 26, 32, 35, 36, 40, 41, 42, 43, 52, 62, 65, 68, 71, 72], "anyth": [], "unknown": [36, 39], "search": [3, 7, 9, 26, 36, 42, 43, 51, 56, 69, 71, 72, 73], "select": [3, 4, 8, 9, 15, 18, 20, 26, 29, 30, 31, 34, 35, 36, 38, 39, 44, 51, 55, 58, 60, 62], "volum": 3, "class": [3, 5, 10, 15, 26, 29, 38, 40, 41, 43, 45, 46, 48, 49, 52, 53, 58, 60, 62], "ratio": [3, 54], "how": [3, 7, 12, 29, 30, 31, 33, 34, 35, 37, 43, 44, 45, 47, 52, 60], "100": [3, 36, 39], "mean": [3, 29, 34, 41, 57], "absolut": 8, "fuzzywuzzi": 3, "packag": 3, "levenshtein": 3, "distanc": [3, 58], "direct": [4, 42, 44, 58], "databas": [3, 4, 9, 10, 19, 21, 26, 28, 30, 31, 33, 35, 38, 41, 42, 43, 44, 49, 52, 68], "warn": [4, 5, 9, 51, 63], "manipul": [4, 51, 57], "loss": [4, 8], "unus": 4, "backup": [4, 5, 9], "export": [4, 10, 14, 42, 43, 51, 52], "download": [4, 5, 49, 51, 56], "lose": 4, "crash": 4, "local": [4, 51], "version": [4, 6, 8, 33, 43, 44, 47], "recent": 4, "maxim": 12, "dai": [4, 9, 39, 68], "old": [4, 36], "simpl": 4, "power": 4, "unlik": [4, 33], "rest": [4, 15, 51], "safeguard": 4, "prevent": 4, "total": [4, 20], "make": [4, 6, 9, 14, 26, 36, 42, 43, 60, 63, 66], "lost": [4, 9], "fix": [3, 4, 9, 51, 63], "server": [4, 8, 41, 42, 51, 55], "depend": [4, 10, 33, 35, 36, 40, 41, 48, 54, 66], "situat": [4, 29, 41], "problem": [3, 9, 24, 41, 65, 66], "transact": [4, 9], "commit": 4, "automat": [3, 4, 7, 9, 10, 20, 41, 45, 66, 68], "build": [4, 19, 30, 36], "around": [4, 58], "statement": 4, "don": [4, 20, 41, 44, 64, 72], "refresh": [4, 39], "press": [4, 30, 31, 34, 36, 37, 40, 45, 61], "f5": [4, 63], "termin": 4, "after": [3, 4, 7, 10, 11, 20, 31, 34, 35, 36, 40, 51, 57, 61, 63, 66], "queri": [4, 51], "row": [4, 7, 9, 39, 60, 68], "count": [4, 7, 41, 44], "readabl": [4, 51, 58], "affect": 4, "error": [4, 7, 9, 43, 61, 65, 66], "noth": [4, 9, 63], "worri": [4, 41], "especi": [5, 9, 29, 41], "share": 5, "email": [5, 7, 11, 14, 53, 60, 66], "address": [5, 6, 11, 60], "includ": [5, 12, 18, 20, 35, 38, 41, 42, 49, 51, 60, 62], "folder": [5, 8], "directori": [5, 8], "isn": [5, 66], "writabl": 5, "2018": 5, "08": [5, 48], "23_1533_export": 5, "pg_dump": 5, "plain": 5, "format": [5, 8, 9, 26, 42, 43, 51, 69], "result": [3, 5, 6, 10, 29, 37, 41, 42, 51, 54, 57, 58, 61, 62, 68], "fill": [5, 9, 24, 33, 38, 39, 40, 62, 68], "empti": [5, 11, 20, 44], "psql": 5, "archiv": [5, 20, 26, 41, 59], "fc": 5, "pg_restor": 5, "restor": 5, "regardless": 5, "oper": [5, 9], "line": [5, 36, 39, 51, 57, 69], "break": [5, 51, 69], "d": [5, 31, 38, 54], "1": [5, 9, 30, 39, 44, 47, 54, 68], "zip": 5, "sever": [5, 20, 31, 36, 41, 48], "entiti": [5, 6, 9, 10, 14, 16, 17, 18, 20, 23, 24, 25, 26, 27, 29, 38, 40, 41, 42, 43, 44, 45, 47, 49, 50, 51, 52, 53, 55, 58, 59, 60, 62, 64, 67], "divid": [5, 24, 42, 54], "properti": [5, 18, 45, 46, 47, 48, 53], "geometri": [5, 9, 36, 56], "current": [5, 8, 9, 26, 33, 42, 44, 48, 51, 57, 60, 63], "2022": [5, 51], "10": [5, 39, 48, 57], "04_1610": 5, "follow": [3, 5, 6, 8, 9, 18, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 44, 49, 50, 51, 53, 54, 57, 61], "kei": [5, 44, 63], "tag": [5, 41, 51], "mani": [6, 7, 20, 24, 26, 41, 44, 63], "present": [6, 20, 29, 34, 41, 42, 45, 51, 57, 59], "wider": 6, "audienc": 6, "alreadi": [6, 9, 16, 17, 18, 20, 23, 24, 25, 26, 27, 29, 31, 33, 34, 35, 38, 40, 41, 50, 55, 60, 68], "run": [6, 8, 9, 41, 52], "valu": [6, 7, 10, 13, 39, 40, 41, 49, 51, 54, 61, 62, 68], "configur": [6, 8, 20, 52, 53, 55], "backend": [6, 53], "demo": [6, 51], "eu": [6, 8, 51], "overview": [6, 10, 14, 20, 29, 35, 40, 43, 44, 45, 46, 47, 51, 52, 58, 59, 61], "resolv": [3, 6, 26, 38, 48, 49, 52], "view": [3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 23, 24, 25, 26, 27, 29, 31, 34, 36, 37, 45, 51, 52, 55, 57, 58, 59, 60], "specifi": [6, 20, 25, 29, 38, 39, 41, 42, 51], "5560": [], "prefer": [7, 15, 42, 53, 60], "profil": [7, 13, 14, 20, 39, 42, 43, 45, 51, 56, 57, 68, 73], "set": [3, 7, 8, 9, 11, 13, 14, 29, 32, 36, 38, 41, 42, 51, 53, 57, 58, 59, 62, 66, 71], "much": [7, 8, 24, 31, 45], "For": [9, 15, 17, 18, 19, 21, 22, 24, 26, 28, 30, 33, 34, 35, 41, 45, 47, 48, 51, 54, 66, 68], "now": [30, 31, 34], "info": [7, 14, 20, 25], "minimum": 7, "jstree": 7, "charact": [7, 69], "filter": [7, 41, 42, 51, 52, 62, 73], "tree": [7, 31, 41], "type": [7, 10, 14, 15, 17, 18, 19, 20, 21, 22, 24, 25, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 49, 54, 58, 72, 73], "random": 7, "password": [7, 11, 14, 15, 42, 56], "length": 7, "reset": [7, 11, 14, 42, 60], "requir": [7, 9, 14, 20, 26, 33, 35, 36, 38, 41, 42, 51, 63, 70, 72], "confirm": [7, 42], "hour": [7, 60, 68], "long": [7, 20, 41, 73], "code": [7, 43, 44, 45, 51, 52, 65], "fail": [7, 66], "login": [7, 8, 11, 14, 43, 65], "often": [7, 22, 52], "tri": [51, 64], "usernam": [7, 11, 12, 14, 15, 66], "forget": [7, 41], "minut": [7, 60, 66, 68], "wait": [7, 66], "exceed": 7, "activ": [7, 14, 18, 20, 31, 42, 44, 45, 57, 60, 62, 63, 68], "preview": [7, 9], "standard": [8, 37, 40, 42, 44, 72], "deliv": [8, 42], "high": [8, 26, 38, 42, 57], "attribut": [8, 20, 26, 41, 42], "onlin": [8, 38, 42], "scale": [8, 20, 42], "onc": [8, 55], "item": [8, 27, 29, 40, 47], "enabl": [8, 9, 20, 42, 55, 57, 58], "expos": 8, "checkbox": [8, 26, 29, 57, 66], "complet": 8, "api": [8, 10, 15, 20, 26, 41, 42, 43, 49, 52, 60], "yourserv": 8, "manifest": [8, 42], "2": [8, 30, 39, 44, 47, 54], "path": [8, 51], "drop": [8, 20, 38, 58], "zone": 8, "var": 8, "www": [8, 15, 26, 38], "iipsrv": 8, "write": 8, "execut": [8, 10, 43, 52], "webserv": 8, "convers": 8, "control": [8, 15, 38, 51], "convert": [8, 55, 68], "pyramid": 8, "tiff": 8, "none": [8, 36, 41, 51, 53, 63], "deflat": 8, "lossless": 8, "size": [8, 20, 53], "mai": [8, 24, 29, 39, 41, 44, 51, 52, 58, 63, 64], "larg": [8, 20, 36, 39, 58], "jpeg": [8, 20], "smaller": [8, 52], "transpar": 8, "add": [3, 8, 9, 14, 18, 26, 29, 30, 33, 34, 35, 36, 37, 38, 39, 41, 51, 59, 60, 61, 69], "accordingli": 8, "been": [3, 8, 36, 44], "successfulli": 8, "bmp": [8, 20], "gif": [8, 20], "ico": [8, 20], "jpg": [8, 20], "svg": [8, 20], "tif": 8, "csv": [9, 10, 42], "gi": 9, "origin_id": 9, "danger": [], "integr": [9, 10, 26, 43, 58], "consum": 9, "revers": [], "them": [9, 18, 22, 29, 32, 33, 36, 41, 44, 55, 60, 63], "so": [3, 4, 9, 22, 30, 31, 36, 39, 41, 44, 45, 51, 52, 58, 68], "strongli": 9, "advis": 9, "sql": [9, 10, 43, 52], "older": [9, 63], "enforc": 9, "check": [9, 10, 11, 14, 26, 29, 35, 39, 42, 43, 45, 58, 60, 62], "alright": 9, "encapsul": 9, "script": [9, 44], "sure": [9, 36, 51, 63, 66, 68], "extens": [9, 20, 45, 51], "spell": [9, 39, 67], "correctli": [9, 39], "lower": [9, 24], "my_data": 9, "header": [9, 73], "each": [9, 15, 24, 39, 40, 42, 44, 49, 51, 54], "separ": [9, 41], "comma": 9, "enclos": 9, "doubl": [9, 36], "quot": 9, "To": [9, 15, 16, 17, 18, 20, 23, 24, 25, 27, 30, 31, 33, 35, 36, 37, 38, 39, 40, 45, 47, 48, 51, 52, 57, 62, 67, 68, 73], "retrac": 52, "ll": [9, 43, 66], "choos": [7, 9, 15, 17, 30, 31, 34, 35, 36, 37, 38, 40, 45, 58], "titl": [9, 18, 51, 57], "messag": [9, 51, 63, 64, 66], "miss": [9, 10, 41, 44, 63, 68], "wont": [], "trace": [], "back": [24, 30, 31], "uniqu": [9, 26, 49], "per": [9, 73], "prefix": 9, "person_1": 9, "place_1": 9, "begin_from": [9, 48], "begin_to": [9, 48], "end_from": [9, 48], "end_to": [9, 48], "type_id": 9, "north": 57, "east": 57, "yyyi": [9, 39, 62], "mm": [9, 39], "dd": [9, 39], "span": [31, 32, 48, 62, 68], "incorrect": 9, "red": 9, "discard": [], "silent": [], "advanc": [9, 14, 62, 63, 69], "between": [3, 18, 31, 33, 39, 40, 45, 47, 48, 49, 54, 58], "studi": [9, 29, 43], "go": [18, 20, 24, 30, 31, 39, 40, 45, 57], "space": [9, 20, 24, 30], "point": [9, 18, 33, 34, 35, 36, 51, 57], "coordin": [10, 26, 36, 57], "too": [24, 27, 58, 62], "keep": [9, 10, 14, 29, 31, 32, 35, 36, 37, 38, 41, 45, 69], "mind": [9, 10, 29, 31, 32, 35, 36, 37, 38, 41], "wgs84": [9, 57], "geodet": 9, "latitud": [], "longitud": [], "number": [7, 9, 48, 49, 51, 66], "duplic": [9, 10, 41, 72], "chosen": [7, 9, 36, 38, 40, 41], "sensit": [9, 62], "king": [9, 31, 38, 39], "arthur": 9, "print": [9, 49], "stop": 9, "went": [9, 33], "through": [3, 9, 18, 20, 26, 44, 51], "summari": [9, 27], "brows": [9, 14, 44, 45], "layout": [9, 20, 52], "did": 9, "lot": [26, 41], "good": [9, 20, 24, 30], "idea": 9, "field": [2, 10, 26, 31, 36, 37, 38, 40, 42, 43, 48, 55, 57, 60, 61, 68, 70, 71, 72, 73], "gener": [9, 10, 18, 33, 43, 51, 52, 53, 56, 63, 68], "authent": [10, 11, 15, 43], "mail": [10, 14, 43], "modul": [10, 39, 43, 56, 57, 68], "map": [10, 17, 18, 19, 21, 22, 24, 26, 28, 30, 31, 35, 42, 43, 45, 47, 48, 49, 56, 60], "iiif": [10, 41, 43, 55], "content": [10, 25, 27, 34, 43, 49, 57, 63], "frontend": [10, 41, 43], "orphan": [10, 58], "subunit": [10, 22, 27, 30], "circular": 10, "similar": [10, 26, 38, 41, 57, 68], "prepar": 10, "dump": 10, "json": [10, 51], "xml": 10, "arch": [10, 20, 41, 43], "fetch": 10, "reference_system": 10, "index": [10, 16, 17, 18, 20, 23, 24, 25, 27], "vocab": [10, 43], "show": [3, 9, 10, 20, 26, 36, 39, 41, 45, 51, 58, 59, 60, 62, 63, 66, 68, 73], "vocabulari": [10, 38, 49], "ensur": [11, 20, 41], "disabl": [11, 12, 26], "leav": 11, "send": [11, 14, 35], "mail_password": 11, "smtp": 11, "net": [6, 11], "port": 11, "587": 11, "recipi": [11, 18], "feedback": [11, 63], "receiv": [11, 35, 60, 66], "zoom": [12, 36, 57, 58, 60], "lowest": [12, 60], "max": [4, 12, 20, 60], "adjust": [12, 13, 60], "far": [12, 60], "disableclusteringatzoom": 12, "cluster": [12, 36], "maxclusterradiu": 12, "rang": [12, 44, 48, 51, 61], "geonam": [12, 30, 38, 49, 56], "overwrit": [], "newslett": [14, 42, 60], "subscript": 14, "registr": 14, "account": [14, 61], "sent": [14, 35], "inact": [14, 59], "modifi": [14, 18, 60], "full": [14, 36, 57, 60, 62], "easier": [14, 22, 26, 42, 60], "identifi": [9, 14, 22, 26, 36, 60], "free": [14, 31, 33, 35, 36, 38, 39, 43, 49], "guest": 14, "who": [14, 16, 17, 21, 22, 29, 33], "aren": [14, 20, 29, 41, 68], "contributor": 14, "readonli": 14, "ye": 14, "refer": [10, 14, 16, 17, 18, 19, 20, 21, 22, 24, 27, 28, 29, 30, 32, 34, 35, 39, 40, 41, 42, 43, 44, 45, 47, 53, 57], "own": [13, 14, 16, 17, 21, 31, 36, 38, 41, 42, 45, 51], "skosmo": 15, "As": [15, 31, 33, 35, 36, 38, 39, 45, 61], "ch": 15, "trail": 15, "slash": 15, "vocabs_pw": 15, "given": [3, 15, 18, 39, 42, 51, 54, 61], "differ": [15, 18, 20, 30, 32, 33, 35, 36, 38, 40, 41, 42, 45, 47, 51, 58, 67, 69, 72], "confer": 15, "w3": 15, "org": [15, 26, 38, 51], "tr": 15, "sko": [15, 26, 38, 57], "primer": 15, "either": [4, 15, 20, 34, 39, 41, 51, 57, 66], "concept": [15, 26, 57], "child": 15, "conceptu": [15, 44, 45], "decid": [15, 40], "choic": [15, 29, 40], "what": [15, 58], "e74": 16, "famili": 16, "tribe": 16, "greenpeac": 16, "nation": 16, "museum": [16, 26, 31, 38, 44], "denmark": 16, "On": [16, 17, 18, 20, 23, 24, 25, 27, 31, 33, 35], "alia": [10, 16, 24, 30, 36, 70], "resid": [16, 24], "main": [16, 41, 44, 53, 71], "born": [16, 48], "began": [3, 16], "di": [16, 48], "sourc": [3, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 28, 30, 35, 39, 43, 45, 47, 49, 51, 52, 71], "referenc": [16, 17, 18, 19, 21, 24, 25, 28], "particip": [3, 16, 18, 22, 31, 33, 44, 48], "member": [16, 37], "remain": [9, 16, 17, 22, 24, 28, 43, 54], "coin": [17, 30, 31], "stratigraph": [9, 17, 19, 21, 22, 24, 43, 47, 48, 54, 61], "unit": [9, 17, 19, 21, 22, 36, 39, 43, 47, 48, 54, 61], "part": [1, 3, 17, 18, 19, 21, 28, 33, 39, 41, 49, 55, 59], "acquisit": [17, 21, 42], "modif": [17, 21, 38, 40], "move": [17, 21, 24, 31, 32, 58], "carrier": 17, "e7": [18, 48], "e8": 18, "e5": [18, 48], "e11": 18, "e9": 18, "common": [18, 26, 51, 65], "battl": [18, 35, 39], "meet": [18, 62], "wed": 18, "perform": [18, 20, 31, 45, 56], "natur": [18, 38, 47], "disast": 18, "conserv": 18, "treatment": 18, "movement": [18, 34], "crm": [18, 33, 42, 43, 45, 46, 47, 48, 52], "occur": [9, 18, 35, 51], "anoth": [18, 20, 24, 29, 31, 33, 34, 41, 49, 51, 60], "war": [18, 35, 39, 48], "preced": [10, 18, 33, 35, 39, 44, 48], "journei": [18, 32, 35], "donor": 18, "step": [18, 22, 24, 26, 30, 31, 32, 33, 34, 37, 41, 42], "instruct": [18, 24, 26, 31], "our": [18, 24, 26, 41, 43, 44, 51], "ownership": 18, "acquir": [18, 31, 41], "surrend": 18, "creator": [18, 20, 41], "carri": [18, 30], "out": [9, 18, 29, 33, 36, 40, 41, 48, 51, 57, 62, 63, 68], "while": [3, 18, 42, 45, 47, 49, 51, 54], "destin": 18, "unfortun": [18, 33], "background": [18, 42, 47, 58, 68], "more": [9, 18, 19, 20, 21, 24, 26, 28, 29, 30, 31, 33, 35, 36, 38, 40, 41, 42, 43, 44, 45, 47, 49, 51, 52, 62], "tutori": [18, 31, 33, 35, 36, 41], "produc": 18, "e18": [19, 24, 28, 47, 48], "physic": [19, 24, 28, 30, 31, 34, 36, 47, 48, 57], "thing": [19, 24, 28, 30, 36, 47, 48, 57], "archaeolog": [9, 19, 21, 22, 24, 28, 31, 42, 43], "record": [19, 21, 24, 28, 31, 34, 49, 54], "grave": [19, 24, 28, 30, 36], "consid": [19, 24, 47, 49], "consist": [9, 19, 21, 26, 28, 30, 39, 41, 42, 44], "pit": [19, 30], "ditch": 19, "rampart": 19, "themselv": [3, 19, 28, 45], "structur": [9, 19, 22, 28, 41, 42, 43, 51], "same": [3, 9, 19, 20, 21, 26, 28, 32, 33, 34, 37, 41, 47, 48], "wai": [19, 28, 31, 32, 34, 40, 44, 48, 49, 51], "label": [19, 29, 44, 58, 68], "disk": 20, "display": 20, "upload": [20, 31, 42, 52, 53], "exce": 20, "limit": [20, 53, 68], "criteria": 62, "drag": [20, 57, 58], "area": [20, 36, 54, 55, 57], "chose": [20, 68], "prefil": 20, "filenam": [20, 41], "work": [20, 22, 39, 42, 43, 63], "practic": [20, 41], "maximum": 20, "mb": 20, "width": [20, 58], "pixel": [20, 58], "display_file_ext": 20, "height": [20, 29, 58], "120": 20, "px": 20, "larger": 20, "try": [20, 45, 51, 58, 63, 64, 66, 68], "small": [20, 60], "impact": 20, "e20": 21, "biolog": [21, 30], "anthropolog": [21, 24, 30, 43, 56, 61], "bone": [21, 30, 54], "sex": [21, 29, 30, 42, 56], "gender": [21, 30], "ag": [21, 30, 42], "individu": [3, 21, 30, 54], "mask": [21, 30], "workflow": [21, 22, 24, 28, 30, 32, 42, 59], "femur": [21, 30, 54], "humeru": [21, 54], "molar": 21, "historian": 22, "come": [22, 29, 41, 49, 68], "histor": [9, 22, 26, 36, 38, 39, 43], "usual": [22, 27, 41], "next": [3, 22, 30, 40], "bit": 22, "question": [9, 22, 41], "cours": [3, 22, 41, 57], "hi": [22, 31, 39], "life": [22, 48], "archaeologist": 22, "reflect": [22, 34, 51], "contin": 24, "graveyard": [24, 30], "austria": 24, "itali": 24, "respect": [24, 27, 29, 33, 34, 35, 36, 38, 41, 48, 49, 57], "styria": 24, "duchi": 24, "bavaria": 24, "lombard": [24, 38], "kingdom": 24, "done": [24, 29], "support": [24, 63, 69], "its": [3, 24, 30, 34, 39, 40, 45, 51, 57, 58], "certain": [24, 30, 36, 44, 46, 48, 49, 57], "posit": [24, 30, 36, 49, 57], "extend": [24, 30, 33, 34, 57], "variou": [3, 24, 26, 27, 30, 35, 36, 42, 49], "tempor": [24, 30, 35, 42], "spatial": [24, 30, 42, 57], "furthermor": [24, 26, 39, 40, 45, 49], "those": [24, 30, 39, 47, 51], "superior": 24, "cemeteri": 24, "compos": 24, "burial": [24, 28, 30, 36], "primari": 24, "secondari": [24, 27], "solv": [24, 63, 65], "book": [25, 30, 49], "inbook": 25, "articl": [25, 30, 51], "charter": [25, 27, 49], "chronicl": 25, "extern": [10, 20, 25, 26, 31, 35, 38, 40, 41, 47, 51, 53], "doi": [25, 49], "At": [7, 25, 33, 41, 48, 55], "instead": [25, 34, 45, 51], "author": [26, 33, 49], "wikidata": [38, 49], "definit": [26, 38, 44, 45, 51], "confid": [26, 38, 57], "degre": [26, 38, 54, 57], "interchang": [26, 38, 57], "close": [26, 36, 38, 57], "match": [9, 26, 36, 38, 44, 57], "suffici": [26, 38, 57], "retriev": [26, 38, 51, 57], "exact": [26, 36, 38, 39, 57, 68], "vienna": [26, 38, 61], "suitabl": [26, 33, 38, 52], "wikipedia": 26, "wiki": [26, 38, 43], "togeth": [9, 26, 41, 44], "q123": 26, "desir": [26, 30, 37, 38], "short": [26, 31, 35, 44], "mous": [26, 29, 40, 57, 58, 73], "over": [26, 29, 31, 36, 40, 41, 49, 61, 73], "attach": [26, 41, 51], "e33": [27, 45, 47, 49], "linguist": [27, 47, 49], "written": [27, 30, 34, 52], "mediev": [27, 49], "letter": [27, 31, 32, 33, 35], "whole": [3, 9, 27, 49], "translat": [26, 27, 45, 47, 52, 53], "latin": 27, "comment": [27, 39, 62, 68], "tool": [28, 31, 42, 43, 45, 51, 54, 57, 59, 61, 73], "lead": [28, 41, 45, 51], "backfil": [28, 30], "e55": [29, 48], "hierarch": [3, 29, 40], "via": [3, 6, 9, 13, 30, 33, 35, 36, 37, 39, 42, 43, 45, 46, 48, 49, 51, 53, 54, 55], "adapt": [29, 42, 60], "interest": 29, "dynam": [29, 40], "least": [29, 40, 41, 62], "permiss": [29, 38, 40, 42, 64], "basic": [29, 40], "root": [29, 52], "untyp": 29, "switch": [29, 57, 58, 71], "few": [29, 66, 72], "renam": 29, "subtyp": 29, "grei": 29, "dimens": [29, 30, 48], "weight": [29, 54], "decim": [29, 57], "permit": 29, "put": [3, 29, 33, 38, 39, 41, 45], "awkward": 29, "reduc": 29, "haven": [29, 63], "mention": [1, 30], "element": [30, 31, 33, 34, 60, 63], "procedur": [30, 33, 34], "3": [30, 48, 51, 54], "knife": 30, "4": [20, 30, 41, 51, 62, 68], "teeth": 30, "classif": [30, 33, 34], "bout": 30, "ani": [9, 30, 31, 41, 45, 49, 51], "concern": [30, 33, 34, 45, 52], "store": [30, 31, 42, 48, 49], "state": [30, 36, 38, 51, 61], "appropri": [30, 31, 34], "settlement": 30, "magnifi": [30, 36, 57], "evid": 30, "plot": [30, 36], "photo": 30, "do": [30, 31, 36, 39, 45, 63], "By": [3, 26, 30, 31, 35, 36, 39, 40, 57], "directli": [9, 30, 38, 41, 45, 47, 54], "layer": [30, 36, 57], "newli": [30, 31], "potteri": 30, "finger": 30, "ring": [30, 48], "patholog": 30, "measur": [30, 61], "discolor": 30, "canin": 30, "owner": 31, "represent": 31, "regard": [9, 31, 38, 40, 53], "repres": [31, 35, 36, 39, 47], "cover": [31, 36], "advantag": [26, 31], "fit": [31, 35, 36], "Then": [31, 36], "learn": 31, "land": [31, 35, 54], "kind": [31, 36, 40], "abl": [26, 31, 41], "track": [31, 39, 42, 48, 53, 61], "occurr": 31, "excav": [31, 55], "transfer": 31, "sold": 31, "leonardo": 31, "paint": 31, "mona": 31, "lisa": 31, "workshop": 31, "florenc": 31, "therefor": [3, 31, 41, 45, 54], "franci": 31, "franc": 31, "exhibit": 31, "ch\u00e2teau": 31, "ambois": 31, "fountainebleau": 31, "pictur": [31, 55], "louvr": 31, "pari": 31, "typic": 32, "scenario": 32, "suggest": [32, 63, 65], "discuss": 32, "best": 32, "team": [3, 20, 32, 41, 44], "profess": [32, 43], "special": [33, 41, 42, 44, 47, 69], "trip": 33, "chronolog": 33, "captur": 33, "continu": [33, 35, 36], "altern": [33, 41, 51], "role": [33, 38, 41], "determin": [33, 42, 44, 49, 54], "exchang": [34, 43], "materi": 34, "said": [9, 34], "copi": [34, 36], "preset": 34, "subgroup": 35, "bring": [35, 38], "simultan": 35, "music": 35, "festiv": 35, "parallel": 35, "concert": 35, "overlap": 35, "sequenc": [35, 44, 51], "introduct": [35, 43], "think": [35, 38, 39, 44, 64, 66], "yet": 35, "design": [20, 36, 41, 42, 54], "screen": [36, 57], "glass": [36, 57], "correct": [3, 9, 20, 36, 41], "pop": 36, "marker": [36, 57], "visual": [36, 42, 43, 50, 56], "hover": 36, "landscap": 36, "street": 36, "satellit": 36, "whether": [36, 73], "four": [36, 39], "mode": [36, 57, 58], "centerpoint": 36, "linestr": [9, 36, 57], "drawn": [36, 57], "border": 36, "river": 36, "bed": 36, "draw": [36, 55, 57], "shape": [36, 38, 54, 57], "rectangl": [36, 55, 57], "ground": 36, "polygon": [9, 36, 57], "hole": 36, "whose": 36, "mark": [9, 20, 36, 41, 55, 70, 72], "enough": [36, 39, 68], "window": 36, "dedic": 36, "countri": [37, 49], "lod": [38, 42], "gazett": [38, 49], "particularli": [38, 42], "But": [29, 38, 41], "analog": 38, "card": [38, 49], "catalog": [38, 49], "inventori": [38, 49], "manual": [38, 40, 41, 42, 50, 51, 52, 57], "q3044": 38, "charlemagn": 38, "input": [38, 51, 68], "2761369": 38, "AT": 38, "precis": [38, 57], "down": 38, "left": [38, 50, 55, 57, 58], "blank": 38, "belt": 38, "buckl": 38, "q3180027": 38, "todai": 38, "frank": 38, "becam": 38, "holi": [38, 48], "roman": 38, "emperor": 38, "800": [26, 38, 68], "venu": 38, "willendorf": 38, "histori": 38, "q131397": 38, "focus": 39, "statigraph": 39, "bottom": [39, 40, 57], "initi": [39, 68], "hidden": [39, 68], "year": [39, 48, 61, 62, 68], "4713": [39, 68], "9999": [39, 51, 68], "month": [39, 62, 68], "12": [9, 39, 48, 62, 68], "31": [39, 48, 54, 62, 68], "hh": 39, "23": [9, 39, 48, 68], "59": [39, 51, 68], "ss": 39, "indic": [20, 39, 41, 44, 48, 51], "minu": 39, "bc": [39, 68], "moment": [7, 39, 48, 58], "due": [3, 39, 42], "softwar": [39, 42, 45, 47, 52], "restrict": [0, 39, 41, 64], "postgresql": [39, 44, 53, 68], "prolept": [39, 68], "gregorian": [39, 68], "calendar": [39, 68], "hast": 39, "fought": 39, "william": 39, "duke": 39, "normandi": 39, "norman": 39, "french": [39, 42], "troop": 39, "harold": 39, "godwinson": 39, "english": [39, 42], "armi": 39, "14th": 39, "octob": 39, "1066": 39, "14": 39, "alik": 39, "Or": 39, "peac": 39, "westphalia": 39, "treati": 39, "sign": [39, 51], "1648": [39, 48], "osnabr\u00fcck": 39, "15th": 39, "m\u00fcnster": 39, "24th": 39, "thirti": [39, 48], "eighti": 39, "05": [39, 48], "15": 39, "24": [39, 48], "uncertain": 39, "third": 39, "fourth": 39, "must": [20, 39, 41, 44, 51], "frame": 39, "certainti": 39, "death": [39, 48], "stephen": 39, "hungari": 39, "august": 39, "1038": 39, "birth": [39, 44, 48, 68], "01": [39, 62, 68], "975": 39, "earliest": 39, "latest": [39, 50], "howev": 39, "gear": [39, 45], "organ": 40, "distinct": [40, 49], "push": 40, "blue": 40, "light": 40, "answer": 41, "frequent": 41, "approach": [41, 51], "deal": [41, 44, 45, 58], "probabl": [41, 49, 63], "analys": [41, 43, 56, 61], "develop": [3, 20, 41, 42, 43, 44, 45, 51], "decis": 41, "regist": [41, 66], "model": [9, 41, 43, 44, 46, 48, 49, 50, 52, 53, 55, 59], "plan": [20, 41], "hide": [41, 60], "reason": [41, 44, 51, 63, 66], "conflict": 41, "core": 41, "strict": 41, "better": 41, "peopl": 41, "sai": 41, "alex": 41, "him": 41, "pick": 41, "he": 41, "unstructur": 41, "being": [0, 26, 41], "nor": [41, 44], "searchabl": [41, 60], "solut": [41, 63], "happi": 41, "help": [41, 63, 65], "tailor": 41, "hesit": 41, "reach": [41, 46, 50], "topic": [41, 42, 51, 63], "linebreak": 41, "html": [41, 52], "markdown": 41, "bold": 41, "font": 41, "underlin": 41, "necessarili": [41, 49], "handl": [41, 43], "interoper": 41, "Of": [3, 41], "easi": [42, 51], "emphasi": [3, 42, 45], "conveni": [42, 44, 47], "contribut": 42, "significantli": 42, "effort": [4, 42], "ontologi": [42, 44, 45], "easili": 42, "fair": 42, "principl": 42, "intern": [26, 42, 44, 45], "wide": [42, 44, 68], "uncertainti": [42, 68], "checker": [42, 43, 45], "quick": [42, 43, 62], "accord": [42, 47, 48, 66], "flexibli": 42, "thu": [42, 45], "interact": [42, 57], "navig": [42, 56, 62, 73], "network": [42, 43, 50, 56], "bookmark": [42, 50, 53, 64], "context": [42, 45], "internation": 42, "gettext": 42, "catalan": 42, "german": 42, "spanish": 42, "viewer": [20, 41, 42, 55], "mirador": 42, "grant": 42, "autom": 42, "unsubscrib": [42, 60], "interdisciplinari": [42, 44], "method": [42, 54], "futur": 42, "ferembach": [42, 54], "et": [42, 54], "al": [42, 54, 71], "estim": [42, 56], "1979": [42, 54], "ment": [42, 61], "archeolog": 43, "geospati": 43, "redmin": [3, 43], "annot": [10, 43, 53, 56], "radiocarbon": [43, 56], "shortcut": [43, 45, 68], "guid": 43, "paramet": [43, 58], "proxi": 43, "troubleshoot": 43, "faq": 43, "doe": [43, 44, 51], "why": 43, "longer": [3, 43], "iso": 44, "formal": 44, "council": 44, "icom": 44, "basi": 44, "underli": 44, "v7": 44, "publish": [44, 54], "2021": 44, "pars": 44, "github": 44, "numer": [44, 61], "e39": [44, 48], "e67": [44, 48], "characteris": 44, "had": [44, 48, 68], "invers": 44, "sinc": [9, 44, 72], "domain": [26, 44, 48, 51], "ignor": 44, "foreign": 44, "sub_properties_of": 44, "suffix": 44, "counterpart": 44, "p3": [44, 48], "parser": 44, "com": 44, "craw": 44, "blob": 44, "cidoc_rtfs_pars": 44, "normal": [3, 44], "troubl": 44, "prior": [45, 51], "knowledg": [26, 45], "verifi": 45, "conform": [3, 45, 46], "fact": 45, "gain": 45, "insight": 45, "graphic": 45, "symbol": [45, 51, 69], "introduc": 45, "increas": 45, "finer": 45, "grain": 45, "contextu": 45, "lingust": 45, "refin": [47, 62], "7": [47, 54], "compris": 47, "rel": 47, "differenti": 47, "confus": 47, "true": [47, 51], "simplifi": 48, "oa": 48, "p11i": 48, "stefan": 48, "joachim": 48, "son": 48, "father": 48, "usag": [48, 56], "birthplac": 48, "p92i": 48, "brought": 48, "e63": 48, "p7": 48, "took": 48, "albert": 48, "einstein": 48, "e521": 48, "e567": 48, "ulm": 48, "p93i": 48, "e64": 48, "e69": 48, "princeton": 48, "begin_com": 48, "end_com": 48, "timestamp": [48, 51], "e61": 48, "primit": 48, "p4": 48, "e52": 48, "p81": 48, "ongo": 48, "throughout": 48, "lanc": 48, "forg": 48, "durat": 48, "0770": 48, "destroi": [48, 68], "p13": 48, "destruct": 48, "e6": 48, "throw": 48, "lava": 48, "3019": 48, "03": 48, "25": [26, 48], "p98i": 48, "1981": 48, "11": [26, 48, 51], "p100i": 48, "ladi": 48, "diana": 48, "1997": 48, "1618": 48, "purpos": 48, "e62": [48, 69], "string": [9, 48, 69], "p43": 48, "e54": 48, "bibliograph": 49, "delimit": 49, "along": 49, "chapter": 49, "figur": 49, "folio": 49, "7v": 49, "kell": 49, "saint": 49, "mari": 49, "21": 49, "less": 49, "geograph": [26, 49], "eleven": 49, "million": 49, "charg": [49, 58], "distinguish": 49, "web": [26, 49, 52, 53], "non": 49, "encyclopedia": 49, "domain_id": 49, "property_cod": 49, "range_id": 49, "alphanumer": [49, 61], "alon": 49, "p67i": 49, "p71": 49, "terri": 49, "prattchet": 49, "q46248": 49, "p71i": 49, "e1": 49, "depict": 49, "scan": 49, "extract": 49, "mostli": 49, "holder": [20, 49], "logo": [50, 71], "upper": [50, 57], "program": 51, "analyt": 51, "mashin": 51, "constraint": 51, "hand": 51, "swagger": 51, "just": [9, 51, 68], "visit": 51, "rdf": 51, "visibl": [51, 57, 59], "commun": 51, "schema": [51, 53], "5117": 51, "machin": 51, "deprec": 51, "unstabl": 51, "unavail": 51, "notion": 51, "signific": 51, "major": [51, 54, 63], "minor": 51, "except": [29, 51, 60, 69], "previou": [3, 51], "post": 51, "roadmap": 51, "releas": 51, "discontinu": 51, "openapi": 51, "lpf": 51, "geojson": 51, "deriv": 51, "sort": [51, 73], "consult": 51, "convent": 51, "success": 51, "failur": 51, "2xx": 51, "4xx": 51, "signal": 51, "5xx": 51, "tue": 51, "19": 51, "jul": 51, "13": [9, 51], "gmt": 51, "statu": 51, "404": 51, "kf": 51, "desc": 51, "flask": [51, 52], "catch": 51, "handler": 51, "behind": 51, "api_proxi": [], "8899": [], "No": 51, "python": 52, "framework": 52, "config": 52, "upgrad": 52, "live": [52, 62], "util": 52, "static": 52, "css": 52, "javascript": 52, "templat": 52, "compil": 52, "rout": 52, "redirect": 52, "sphinx": 52, "15883": 52, "init": 52, "before_request": 52, "get_by_id": 52, "some_data": 52, "some_filt": 52, "postgi": [53, 57], "literatur": 54, "assess": 54, "schwidetzki": 54, "m": 54, "stloukal": 54, "empfehlungen": 54, "f\u00fcr": 54, "die": 54, "alter": 54, "und": 54, "geschlechtsdiagnos": 54, "am": 54, "skelett": 54, "homo": 54, "30": [54, 57, 61], "32": 54, "primarili": 54, "skull": 54, "pelvi": 54, "examin": 54, "propos": 54, "margo": 54, "supramastoideu": 54, "o": 54, "sacrum": 54, "robust": 54, "supplement": 54, "glabella": 54, "w": 54, "arcu": 54, "superciliari": 54, "tuber": 54, "frontali": 54, "parietali": 54, "inclinatio": 54, "processu": 54, "mastoideu": 54, "relief": 54, "planum": 54, "nuchal": 54, "protuberantia": 54, "occipitali": 54, "externa": 54, "zygomaticu": 54, "zygomaticum": 54, "crista": 54, "supramastoideum": 54, "supraorbitali": 54, "orbita": 54, "mandibl": 54, "overal": 54, "mentum": 54, "angulu": 54, "inferior": 54, "m2": 54, "angl": 54, "sulcu": 54, "praeauriculari": 54, "incisura": 54, "ischiadica": 54, "pubi": 54, "arc": 54, "compos\u00e9": 54, "coxa": 54, "foramen": 54, "obturatum": 54, "corpu": 54, "ossi": 54, "ischii": 54, "iliaca": 54, "fossa": 54, "auricular": 54, "acetabuli": 54, "express": 54, "categori": [29, 54], "assign": 54, "femal": 54, "indiffer": 54, "male": 54, "preserv": 54, "sum": 54, "69": 54, "70": 54, "prerequisit": 55, "wasn": 55, "side": [55, 63], "guarante": 55, "wkt": [10, 56], "overlai": [56, 60], "leaflet": 57, "mousewheel": 57, "hold": 57, "basemap": 57, "popup": 57, "40": 57, "20": 57, "characterist": 57, "road": 57, "toggl": 57, "epsg": [9, 57], "4326": [9, 57], "d3": 58, "j": 58, "graph": [26, 58], "egocentr": 58, "classic": 58, "wheel": 58, "node": 58, "rotat": 58, "pan": 58, "color": 58, "depth": 58, "hardwar": 58, "acceler": [58, 61], "faster": 58, "exactli": 58, "remind": 59, "privat": 59, "seen": 59, "everybodi": 59, "els": [26, 59], "got": 59, "twice": 60, "uncheck": 60, "second": [9, 60, 68, 73], "deactiv": [60, 66], "disappear": 60, "alias": [9, 60, 62, 67, 73], "whom": 60, "laboratori": 61, "abbrevi": 61, "lab": 61, "conduct": 61, "vera": 61, "environment": 61, "specimen": 61, "sampl": 61, "analysi": 61, "1015": 61, "big": 62, "global": [62, 72], "term": [62, 73], "Not": 62, "ada": 62, "lovelac": 62, "da": 62, "love": 62, "unacc": 62, "lov\u0113": 62, "vice": 62, "versa": 62, "placehold": 62, "l": 62, "ce": 62, "me": 62, "dateless": 62, "1540": 62, "1560": 62, "1550": 62, "intend": 63, "sometim": 63, "cach": 63, "rememb": 63, "firefox": 63, "screenshot": 63, "explan": 64, "encount": 64, "let": 64, "know": 64, "read": [64, 73], "obsolet": 64, "proce": [3, 9, 66], "keyboard": 66, "capslock": 66, "forgot": 66, "misspel": 66, "secur": 66, "attack": 66, "lock": 66, "until": 66, "e41": 67, "appel": 67, "oa8": 68, "oa9": 68, "knew": 68, "1356": 68, "unsur": 68, "church": 68, "fist": 68, "decad": 68, "1800": 68, "1809": 68, "zero": 68, "leap": 68, "almost": 69, "cyril": 69, "mathemat": 69, "asterisk": [70, 72], "serv": 71, "quit": 72, "difficult": 72, "glanc": 73, "quickli": 73, "invert": 73, "cut": 73, "value_typ": 9, "reference_system_": 9, "administrative_unit": 9, "historical_plac": 9, "semicolon": 9, "surround": 9, "1234": [6, 9], "65": 9, "458533781141528": 9, "41": 9, "922205268362234": 9, "53062334955289": 9, "917606998887024": 9, "52169797441624": 9, "888476931243254": 9, "append": 9, "reference_system_wikidata": 9, "substitut": 9, "underscor": 9, "_": 9, "reference_system_getty_aat": 9, "q54123": 9, "close_match": 9, "exact_match": 9, "presesent": [], "example_place_hierarchi": 9, "parent_id": 9, "openatlas_class": 9, "56": 9, "78": 9, "5678": 9, "declar": 9, "insensit": 9, "three": 3, "relink": 3, "multi": 9, "geometriccollect": 9, "unselect": 29, "autocomplet": 68, "timespan": [9, 68], "5": 68, "doc": 9, "met": [20, 41], "cc": [20, 41], "BY": [20, 41], "flag": [20, 41], "whatev": [], "md": [], "rst": [], "openatlas_parent_id": 9, "merg": 26, "compar": 26, "insid": 26, "collabor": 26, "multilingu": 26, "wikimedia": 26, "foundat": 26, "anyon": [3, 26], "cc0": 26, "creativ": 26, "000": 26, "gemeinsam": 26, "normdatei": 26, "organis": 26, "subject": 26, "head": 26, "corpor": 26, "bodi": 26, "catalogu": 26, "mainli": 26, "librari": 26, "increasingli": 26, "refernc": [], "soon": 3, "incompat": 3, "chain": 3, "succeed": 3, "b": 0, "cutomis": 2, "underneath": 2, "unlink": 3, "accid": 3, "pre": 3, "caus": [3, 9], "themself": 3, "reoccur": 3, "upon": 7, "attempt": 7, "caution": 9, "timefram": 9, "pair": 9, "wrap": 9, "cell": 9, "quotat": 9, "iv": 9, "542": 9, "34": 9, "66": 9, "tall": 9, "coulmn": 9, "data_integrity_check": 9, "choosen": 15, "someurl": 51, "8080": 51}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"api": [0, 51], "arch": 1, "overview": [1, 50], "fetch": 1, "data": [1, 3, 30, 41, 42], "from": 1, "automat": 1, "creat": [1, 33, 35, 36, 38, 40], "entiti": [1, 3, 22, 48], "type": [1, 3, 9, 29, 40, 41, 48], "refer": [1, 9, 25, 26, 31, 36, 38, 49], "system": [1, 9, 26, 36, 38, 49], "content": 2, "integr": [3, 42], "check": [3, 20, 41], "orphan": 3, "without": 3, "link": [3, 16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 29, 31, 33, 46], "miss": 3, "file": [3, 20, 31, 41, 49, 64], "iiif": [3, 8, 42], "subunit": [3, 19, 21, 24, 28], "circular": 3, "depend": 3, "date": [3, 9, 39, 42, 48, 61, 68], "duplic": 3, "similar": 3, "name": [3, 66, 72], "execut": 4, "sql": [4, 5], "prepar": [4, 9], "keep": 4, "mind": 4, "result": 4, "export": 5, "databas": [5, 53], "dump": 5, "csv": 5, "json": 5, "xml": 5, "frontend": 6, "gener": [7, 32, 35, 60], "authent": [7, 51], "import": [9, 15, 20, 57], "project": [9, 41], "class": [9, 44, 47], "field": [9, 14, 16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 29, 39, 41], "place": [9, 24, 30, 36], "option": [9, 58], "after": 9, "admin": 10, "mail": 11, "map": [12, 36, 57], "modul": [13, 60], "user": [14, 20, 41, 42, 43, 66], "form": [14, 16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 29, 70], "group": 14, "vocab": 15, "edit": 15, "show": 15, "vocabulari": 15, "actor": [16, 33], "can": [16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 29, 41], "via": [16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 29, 41], "tab": [16, 17, 18, 19, 20, 21, 24, 25, 27, 28, 29], "artifact": [17, 30, 31, 34], "event": [18, 31, 33, 34, 35], "acquisit": 18, "creation": [18, 31], "modif": 18, "move": [18, 33, 34, 35], "product": 18, "featur": [19, 30, 42], "super": [19, 21, 28], "set": 20, "logo": 20, "imag": [20, 42, 55], "preview": 20, "human": [21, 30], "remain": [21, 30], "administr": 24, "unit": [24, 28, 30], "histor": [24, 32], "ad": [24, 30, 33, 34, 41, 57], "multipl": [24, 31, 41], "citat": 25, "exampl": [25, 32], "id": 26, "precis": [26, 39], "configur": [26, 73], "sourc": [27, 34], "stratigraph": [28, 30], "anthropolog": [28, 42, 54], "analys": [28, 42, 54], "standard": 29, "custom": [29, 41], "valu": [9, 29], "make": [20, 29, 41], "requir": 29, "archaeolog": [30, 32], "new": [30, 31, 35, 36, 38, 40, 57], "site": 30, "an": [30, 31, 34, 40], "add": [31, 40], "creator": 31, "locat": [31, 33], "journei": 33, "letter": 34, "sender": 34, "recipi": 34, "instruct": 35, "how": [20, 36, 39, 41], "us": 36, "geonam": [26, 36, 57], "profess": [37, 41], "time": [39, 48], "span": 39, "where": 39, "find": 39, "input": 39, "enter": [39, 41], "activ": [39, 66], "hour": 39, "minut": 39, "second": 39, "tree": 40, "exist": 40, "faq": 41, "manag": [20, 41, 42], "case": [41, 58], "studi": 41, "instanc": 41, "share": [20, 41], "doe": 41, "access": [41, 51], "work": 41, "why": 41, "t": 41, "free": 41, "text": 41, "longer": 41, "format": 41, "model": [42, 45], "interfac": [42, 43], "annot": [3, 42, 55], "exchang": 42, "radiocarbon": [42, 48, 61], "openatla": [43, 47, 48], "manual": 43, "document": 43, "help": 43, "cidoc": 44, "crm": 44, "properti": 44, "checker": 46, "shortcut": 48, "oa7": 48, "ha": 48, "relationship": 48, "oa8": 48, "appear": 48, "first": 48, "oa9": 48, "last": 48, "e77": 48, "persist": [48, 63], "item": 48, "e21": 48, "person": 48, "e2": 48, "tempor": 48, "introduct": 51, "quick": 51, "start": 51, "guid": 51, "1": 51, "ui": 51, "2": 51, "url": 51, "get": 51, "version": [51, 63], "endpoint": 51, "paramet": 51, "error": [51, 63, 64], "handl": 51, "proxi": 51, "applic": 52, "structur": [52, 53], "sex": 54, "estim": 54, "usag": [26, 55], "tool": 56, "navig": [57, 58], "search": [57, 62], "wkt": [9, 57], "geometri": 57, "overlai": 57, "network": 58, "visual": 58, "2d": 58, "3d": 58, "In": 58, "perform": 58, "issu": 58, "download": 58, "note": 59, "profil": 60, "chang": 60, "password": [60, 66], "displai": [60, 63], "browser": 63, "refresh": 63, "your": 63, "javascript": 63, "If": 63, "problem": 63, "code": 64, "403": 64, "forbidden": 64, "404": 64, "found": [64, 66], "418": 64, "i": [64, 66], "m": 64, "teapot": 64, "troubleshoot": 65, "login": 66, "wrong": 66, "No": 66, "thi": 66, "too": 66, "mani": 66, "attempt": 66, "alia": [9, 67], "descript": 69, "menu": 71, "tabl": 73, "coordin": 9, "extern": 9, "possibl": 9, "hierarchi": 9, "public": [20, 41], "avail": [20, 41], "criteria": [20, 41], "softwar": [20, 41], "includ": 26, "default": 26, "wikidata": 26, "gnd": 26, "invalid": 3, "involv": 3, "preced": 3, "sub": 3}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"API": [[0, "api"], [51, "api"]], "ARCHE": [[1, "arche"]], "Overview": [[1, "overview"], [50, "overview"]], "Fetch": [[1, "fetch"]], "Data from ARCHE": [[1, "data-from-arche"]], "Automatically created entities": [[1, "automatically-created-entities"]], "Type": [[1, "entity-type"], [3, "type"], [29, "type"]], "Reference System": [[1, "entity-reference-system"], [26, "reference-system"]], "Entity": [[1, "entity-index"], [22, "entity"]], "Content": [[2, "content"]], "Data integrity checks": [[3, "data-integrity-checks"]], "Orphans": [[3, "orphans"], [3, "id1"]], "Entities without links": [[3, "entities-without-links"]], "Missing files": [[3, "missing-files"]], "Orphaned files": [[3, "orphaned-files"]], "Orphaned IIIF files": [[3, "orphaned-iiif-files"]], "Orphaned annotations": [[3, "orphaned-annotations"]], "Orphaned subunits": [[3, "orphaned-subunits"]], "Circular dependencies": [[3, "circular-dependencies"]], "Dates": [[3, "dates"], [48, "dates"], [9, "dates"]], "Invalid dates": [[3, "invalid-dates"]], "Invalid link dates": [[3, "invalid-link-dates"]], "Invalid involvement dates": [[3, "invalid-involvement-dates"]], "Invalid preceding dates": [[3, "invalid-preceding-dates"]], "Invalid sub dates": [[3, "invalid-sub-dates"]], "Check links": [[3, "check-links"]], "Check link duplicates": [[3, "check-link-duplicates"]], "Check similar names": [[3, "check-similar-names"]], "Execute SQL": [[4, "execute-sql"]], "Preparation": [[4, "preparation"], [9, "preparation"]], "Keep in mind": [[4, "keep-in-mind"]], "Result": [[4, "result"]], "Export": [[5, "export"]], "Export SQL": [[5, "export-sql"], [5, "id1"]], "Export database dump": [[5, "export-database-dump"]], "Export CSV": [[5, "export-csv"]], "Export JSON": [[5, "export-json"]], "Export XML": [[5, "export-xml"]], "Frontend": [[6, "frontend"]], "General": [[7, "general"], [32, "general"], [60, "general"]], "Authentication": [[7, "authentication"]], "IIIF": [[8, "iiif"]], "Admin": [[10, "admin"]], "Mail": [[11, "mail"]], "Map": [[12, "map"], [57, "map"]], "Modules": [[13, "modules"], [60, "modules"]], "User": [[14, "user"]], "Form fields": [[14, "form-fields"], [16, "form-fields"], [17, "form-fields"], [18, "form-fields"], [19, "form-fields"], [20, "form-fields"], [21, "form-fields"], [24, "form-fields"], [25, "form-fields"], [27, "form-fields"], [28, "form-fields"], [29, "form-fields"]], "Groups": [[14, "groups"]], "Import": [[15, "import"], [9, "import"]], "Vocabs": [[15, "vocabs"]], "Edit": [[15, "edit"]], "Show vocabularies": [[15, "show-vocabularies"]], "Actor": [[16, "actor"]], "Can be linked via tabs to": [[16, "can-be-linked-via-tabs-to"], [17, "can-be-linked-via-tabs-to"], [18, "can-be-linked-via-tabs-to"], [19, "can-be-linked-via-tabs-to"], [20, "can-be-linked-via-tabs-to"], [21, "can-be-linked-via-tabs-to"], [24, "can-be-linked-via-tabs-to"], [25, "can-be-linked-via-tabs-to"], [27, "can-be-linked-via-tabs-to"], [28, "can-be-linked-via-tabs-to"], [29, "can-be-linked-via-tabs-to"]], "Artifact": [[17, "artifact"]], "Event": [[18, "event"]], "Acquisition": [[18, "acquisition"]], "Creation": [[18, "creation"]], "Modification": [[18, "modification"]], "Move": [[18, "move"]], "Production": [[18, "production"]], "Feature": [[19, "feature"]], "Super and subunits": [[19, "super-and-subunits"], [21, "super-and-subunits"], [28, "super-and-subunits"]], "File": [[20, "file"]], "Form fields important for public sharing": [[20, "form-fields-important-for-public-sharing"]], "Settings": [[20, "settings"]], "Logo": [[20, "logo"]], "Image preview": [[20, "image-preview"]], "How to make files available for the public": [[20, "how-to-make-files-available-for-the-public"], [41, "how-to-make-files-available-for-the-public"]], "Criteria checked by the software": [[20, "criteria-checked-by-the-software"], [41, "criteria-checked-by-the-software"]], "Criteria checked by managers and users": [[20, "criteria-checked-by-managers-and-users"]], "Human remains": [[21, "human-remains"]], "Place": [[24, "place"]], "Administrative Unit": [[24, "administrative-unit"]], "Historical Place": [[24, "historical-place"]], "Places and their subunits": [[24, "places-and-their-subunits"]], "Adding multiple places": [[24, "adding-multiple-places"]], "Reference": [[25, "reference"]], "Citation example": [[25, "citation-example"]], "Included by default": [[26, "included-by-default"]], "Wikidata": [[26, "wikidata"]], "GeoNames": [[26, "geonames"], [57, "id1"]], "GND": [[26, "gnd"]], "Usage": [[26, "usage"], [55, "usage"]], "ID": [[26, "id"]], "Precision": [[26, "precision"]], "Configuration": [[26, "configuration"], [73, "configuration"]], "Source": [[27, "source"]], "Stratigraphic unit": [[28, "stratigraphic-unit"]], "Anthropological analyses": [[28, "anthropological-analyses"]], "Value types": [[29, "value-types"], [9, "value-types"]], "Standard types": [[29, "standard-types"]], "Custom types": [[29, "custom-types"]], "Making types required": [[29, "making-types-required"]], "Archaeological data": [[30, "archaeological-data"]], "Adding a new place": [[30, "adding-a-new-place"]], "Adding a feature to the site": [[30, "adding-a-feature-to-the-site"]], "Adding a stratigraphic unit to the feature": [[30, "adding-a-stratigraphic-unit-to-the-feature"]], "Adding an artifact to the stratigraphic unit": [[30, "adding-an-artifact-to-the-stratigraphic-unit"]], "Adding human remains to the stratigraphic unit": [[30, "adding-human-remains-to-the-stratigraphic-unit"]], "Artifacts": [[31, "artifacts"]], "Add a new artifact": [[31, "add-a-new-artifact"]], "Add a reference to the artifact": [[31, "add-a-reference-to-the-artifact"]], "Add a file to the artifact": [[31, "add-a-file-to-the-artifact"]], "Link a creation event": [[31, "link-a-creation-event"]], "Add a creator to the creation event": [[31, "add-a-creator-to-the-creation-event"]], "Add multiple locations to an artifact": [[31, "add-multiple-locations-to-an-artifact"]], "Examples": [[32, "examples"]], "Archaeological": [[32, "archaeological"]], "Historical": [[32, "historical"]], "Journey": [[33, "journey"]], "Adding actors": [[33, "adding-actors"]], "Adding locations": [[33, "adding-locations"]], "Creating the move event": [[33, "creating-the-move-event"]], "Link actors to the journey": [[33, "link-actors-to-the-journey"]], "Letters": [[34, "letters"]], "Adding an artifact": [[34, "adding-an-artifact"]], "Adding a source": [[34, "adding-a-source"]], "Adding the move event": [[34, "adding-the-move-event"]], "Adding sender and recipient": [[34, "adding-sender-and-recipient"]], "Move events": [[35, "move-events"]], "Create a new move event - general instruction": [[35, "create-a-new-move-event-general-instruction"]], "Places": [[36, "places"]], "Create a new place": [[36, "create-a-new-place"]], "How to use the map": [[36, "how-to-use-the-map"]], "Reference Systems - GeoNames": [[36, "reference-systems-geonames"]], "Profession": [[37, "profession"]], "References Systems": [[38, "references-systems"]], "Create a new reference system": [[38, "create-a-new-reference-system"]], "Time Spans": [[39, "time-spans"]], "Where to find the input fields": [[39, "where-to-find-the-input-fields"]], "How to enter dates and time spans": [[39, "how-to-enter-dates-and-time-spans"]], "Precise dates": [[39, "precise-dates"]], "Time spans": [[39, "id1"]], "Activate hours, minutes, and seconds": [[39, "activate-hours-minutes-and-seconds"]], "Types": [[40, "types"], [9, "types"]], "Create a new type tree": [[40, "create-a-new-type-tree"]], "Add a type to an existing type tree": [[40, "add-a-type-to-an-existing-type-tree"]], "FAQ": [[41, "faq"]], "How to manage multiple projects or case studies": [[41, "how-to-manage-multiple-projects-or-case-studies"]], "Multiple instances": [[41, "multiple-instances"]], "Shared instance": [[41, "shared-instance"]], "How does data access work": [[41, "how-does-data-access-work"]], "How to enter professions": [[41, "how-to-enter-professions"]], "Criteria checked by users": [[41, "criteria-checked-by-users"]], "Why can\u2019t a free text field be added via custom types": [[41, "why-can-t-a-free-text-field-be-added-via-custom-types"]], "Why can\u2019t longer texts be formatted": [[41, "why-can-t-longer-texts-be-formatted"]], "Features": [[42, "features"]], "Model": [[42, "model"], [45, "model"]], "User Interface": [[42, "user-interface"]], "IIIF Integration": [[42, "iiif-integration"]], "Image Annotation": [[42, "image-annotation"]], "Data Exchange": [[42, "data-exchange"]], "User Management": [[42, "user-management"]], "Anthropological Analyses": [[42, "anthropological-analyses"], [54, "anthropological-analyses"]], "Radiocarbon Dating": [[42, "radiocarbon-dating"], [61, "radiocarbon-dating"]], "OpenAtlas manual": [[43, "openatlas-manual"]], "User interface": [[43, null]], "Documentation": [[43, null]], "Help": [[43, null]], "CIDOC CRM": [[44, "cidoc-crm"]], "CIDOC classes": [[44, "cidoc-classes"]], "CIDOC Properties": [[44, "cidoc-properties"]], "Link checker": [[46, "link-checker"]], "OpenAtlas classes": [[47, "openatlas-classes"]], "OpenAtlas shortcuts": [[48, "openatlas-shortcuts"]], "OA7 - has relationship to": [[48, "oa7-has-relationship-to"]], "OA8 - appears for the first time in": [[48, "oa8-appears-for-the-first-time-in"]], "OA9 - appears for the last time in": [[48, "oa9-appears-for-the-last-time-in"]], "E77 - Persistent Item": [[48, "e77-persistent-item"]], "E21 Person": [[48, "e21-person"]], "E2 Temporal Entity": [[48, "e2-temporal-entity"]], "Radiocarbon dating type": [[48, "radiocarbon-dating-type"]], "References": [[49, "references"], [49, "id1"], [9, "references"]], "Reference Systems": [[49, "reference-systems"]], "References and Files": [[49, "references-and-files"]], "Introduction": [[51, "introduction"]], "Quick Start Guide": [[51, "quick-start-guide"]], "1. UI access": [[51, "ui-access"]], "2. URL / GET access": [[51, "url-get-access"]], "Versioning": [[51, "versioning"]], "Endpoints": [[51, "endpoints"]], "Parameters": [[51, "parameters"]], "Error handling": [[51, "error-handling"]], "Proxy": [[51, "proxy"]], "Authentication guide": [[51, "authentication-guide"]], "Application Structure": [[52, "application-structure"]], "Database Structure": [[53, "database-structure"]], "Sex Estimation": [[54, "sex-estimation"]], "Image annotation": [[55, "image-annotation"]], "Tools": [[56, "tools"]], "Navigation": [[57, "navigation"], [58, "navigation"]], "Search": [[57, "search"], [62, "search"]], "WKT import": [[57, "wkt-import"]], "Adding new geometries": [[57, "adding-new-geometries"]], "Map Overlay": [[57, "map-overlay"]], "Network visualization": [[58, "network-visualization"]], "2D": [[58, "d"]], "3D": [[58, "id1"]], "Options": [[58, "options"]], "In case of performance issues": [[58, "in-case-of-performance-issues"]], "Download": [[58, "download"]], "Notes": [[59, "notes"]], "Profile": [[60, "profile"]], "Change password": [[60, "change-password"]], "Display": [[60, "display"]], "Display Errors": [[63, "display-errors"]], "Browser Version": [[63, "browser-version"]], "Refresh your Browser": [[63, "refresh-your-browser"]], "JavaScript": [[63, "javascript"]], "If the problem persists": [[63, "if-the-problem-persists"]], "Error Codes": [[64, "error-codes"]], "403 - Forbidden": [[64, "forbidden"]], "404 - File not found": [[64, "file-not-found"]], "418 - I\u2019m a teapot": [[64, "im-a-teapot"]], "Troubleshooting": [[65, "troubleshooting"]], "Login": [[66, "login"]], "Wrong Password": [[66, "wrong-password"]], "No user with this name found.": [[66, "no-user-with-this-name-found"]], "This user is not activated.": [[66, "this-user-is-not-activated"]], "Too many login attempts.": [[66, "too-many-login-attempts"]], "Alias": [[67, "alias"], [9, "alias"]], "Date": [[68, "date"]], "Description": [[69, "description"]], "Form": [[70, "form"]], "Menu": [[71, "menu"]], "Name": [[72, "name"]], "Table": [[73, "table"]], "Project": [[9, "project"]], "Import class": [[9, "import-class"]], "Possible import fields": [[9, "possible-import-fields"]], "WKT coordinates": [[9, "wkt-coordinates"]], "External reference systems": [[9, "external-reference-systems"]], "Place hierarchy": [[9, "place-hierarchy"]], "Import options": [[9, "import-options"]], "After the import": [[9, "after-the-import"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/openatlas/static/manual/technical/api.html b/openatlas/static/manual/technical/api.html index 840c338df..ebe3f4c68 100644 --- a/openatlas/static/manual/technical/api.html +++ b/openatlas/static/manual/technical/api.html @@ -5,7 +5,7 @@ - API — OpenAtlas 8.7.0 documentation + API — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            @@ -276,7 +276,9 @@

            Error handling

            If the server is behind a proxy, there are some issues with the RDF export of entities. To provide the OpenAtlas API with a proxy server, add following line to instance/production.py

            -
            API_PROXY = 'http://proxy.example:8899'
            +
            PROXIES = {
            +    'http': 'http://someurl.org:8080',
            +    'https': 'http://someurl.org:8080'}
             
            diff --git a/openatlas/static/manual/technical/application_structure.html b/openatlas/static/manual/technical/application_structure.html index c22cba8d5..a79281100 100644 --- a/openatlas/static/manual/technical/application_structure.html +++ b/openatlas/static/manual/technical/application_structure.html @@ -5,7 +5,7 @@ - Application Structure — OpenAtlas 8.7.0 documentation + Application Structure — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/technical/database_structure.html b/openatlas/static/manual/technical/database_structure.html index af2370cd5..2eb9a456b 100644 --- a/openatlas/static/manual/technical/database_structure.html +++ b/openatlas/static/manual/technical/database_structure.html @@ -5,7 +5,7 @@ - Database Structure — OpenAtlas 8.7.0 documentation + Database Structure — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/tools/anthropological_analyses.html b/openatlas/static/manual/tools/anthropological_analyses.html index e6e44796e..f70bfca2a 100644 --- a/openatlas/static/manual/tools/anthropological_analyses.html +++ b/openatlas/static/manual/tools/anthropological_analyses.html @@ -5,7 +5,7 @@ - Anthropological Analyses — OpenAtlas 8.7.0 documentation + Anthropological Analyses — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/tools/image_annotation.html b/openatlas/static/manual/tools/image_annotation.html index e3d1163f8..cc738eac9 100644 --- a/openatlas/static/manual/tools/image_annotation.html +++ b/openatlas/static/manual/tools/image_annotation.html @@ -5,7 +5,7 @@ - Image annotation — OpenAtlas 8.7.0 documentation + Image annotation — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/tools/index.html b/openatlas/static/manual/tools/index.html index b584660f6..c017cf5ec 100644 --- a/openatlas/static/manual/tools/index.html +++ b/openatlas/static/manual/tools/index.html @@ -5,7 +5,7 @@ - Tools — OpenAtlas 8.7.0 documentation + Tools — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/tools/map.html b/openatlas/static/manual/tools/map.html index e5587fc1d..ace4d0d8a 100644 --- a/openatlas/static/manual/tools/map.html +++ b/openatlas/static/manual/tools/map.html @@ -5,7 +5,7 @@ - Map — OpenAtlas 8.7.0 documentation + Map — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/tools/network.html b/openatlas/static/manual/tools/network.html index c391c215e..ed70a2a69 100644 --- a/openatlas/static/manual/tools/network.html +++ b/openatlas/static/manual/tools/network.html @@ -5,7 +5,7 @@ - Network visualization — OpenAtlas 8.7.0 documentation + Network visualization — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/tools/notes.html b/openatlas/static/manual/tools/notes.html index 8b56007f1..4ab08de3d 100644 --- a/openatlas/static/manual/tools/notes.html +++ b/openatlas/static/manual/tools/notes.html @@ -5,7 +5,7 @@ - Notes — OpenAtlas 8.7.0 documentation + Notes — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/tools/profile.html b/openatlas/static/manual/tools/profile.html index 965b19b20..a8105be82 100644 --- a/openatlas/static/manual/tools/profile.html +++ b/openatlas/static/manual/tools/profile.html @@ -5,7 +5,7 @@ - Profile — OpenAtlas 8.7.0 documentation + Profile — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/tools/radiocarbon_dating.html b/openatlas/static/manual/tools/radiocarbon_dating.html index 03072cc23..0063f183c 100644 --- a/openatlas/static/manual/tools/radiocarbon_dating.html +++ b/openatlas/static/manual/tools/radiocarbon_dating.html @@ -5,7 +5,7 @@ - Radiocarbon Dating — OpenAtlas 8.7.0 documentation + Radiocarbon Dating — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/tools/search.html b/openatlas/static/manual/tools/search.html index ee02b871f..88cc2665c 100644 --- a/openatlas/static/manual/tools/search.html +++ b/openatlas/static/manual/tools/search.html @@ -5,7 +5,7 @@ - Search — OpenAtlas 8.7.0 documentation + Search — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/troubleshooting/display.html b/openatlas/static/manual/troubleshooting/display.html index 40debe4b1..32ee5348e 100644 --- a/openatlas/static/manual/troubleshooting/display.html +++ b/openatlas/static/manual/troubleshooting/display.html @@ -5,7 +5,7 @@ - Display Errors — OpenAtlas 8.7.0 documentation + Display Errors — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/troubleshooting/error_codes.html b/openatlas/static/manual/troubleshooting/error_codes.html index ff08c49ca..d58e7a160 100644 --- a/openatlas/static/manual/troubleshooting/error_codes.html +++ b/openatlas/static/manual/troubleshooting/error_codes.html @@ -5,7 +5,7 @@ - Error Codes — OpenAtlas 8.7.0 documentation + Error Codes — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/troubleshooting/index.html b/openatlas/static/manual/troubleshooting/index.html index a99cdeb46..708e1c43c 100644 --- a/openatlas/static/manual/troubleshooting/index.html +++ b/openatlas/static/manual/troubleshooting/index.html @@ -5,7 +5,7 @@ - Troubleshooting — OpenAtlas 8.7.0 documentation + Troubleshooting — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/troubleshooting/login.html b/openatlas/static/manual/troubleshooting/login.html index e1434e26c..672ead5e7 100644 --- a/openatlas/static/manual/troubleshooting/login.html +++ b/openatlas/static/manual/troubleshooting/login.html @@ -5,7 +5,7 @@ - Login — OpenAtlas 8.7.0 documentation + Login — OpenAtlas 8.8.0 documentation @@ -35,7 +35,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/ui/alias.html b/openatlas/static/manual/ui/alias.html index 60bb831cd..65298e99c 100644 --- a/openatlas/static/manual/ui/alias.html +++ b/openatlas/static/manual/ui/alias.html @@ -5,7 +5,7 @@ - Alias — OpenAtlas 8.7.0 documentation + Alias — OpenAtlas 8.8.0 documentation @@ -33,7 +33,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/ui/date.html b/openatlas/static/manual/ui/date.html index f81ed19cf..a99de5028 100644 --- a/openatlas/static/manual/ui/date.html +++ b/openatlas/static/manual/ui/date.html @@ -5,7 +5,7 @@ - Date — OpenAtlas 8.7.0 documentation + Date — OpenAtlas 8.8.0 documentation @@ -33,7 +33,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/ui/description.html b/openatlas/static/manual/ui/description.html index ee092e6d8..e2f58ee91 100644 --- a/openatlas/static/manual/ui/description.html +++ b/openatlas/static/manual/ui/description.html @@ -5,7 +5,7 @@ - Description — OpenAtlas 8.7.0 documentation + Description — OpenAtlas 8.8.0 documentation @@ -33,7 +33,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/ui/form.html b/openatlas/static/manual/ui/form.html index 17fab3dd1..5de3a1307 100644 --- a/openatlas/static/manual/ui/form.html +++ b/openatlas/static/manual/ui/form.html @@ -5,7 +5,7 @@ - Form — OpenAtlas 8.7.0 documentation + Form — OpenAtlas 8.8.0 documentation @@ -33,7 +33,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/ui/menu.html b/openatlas/static/manual/ui/menu.html index e4a42e63b..3f4ce9baa 100644 --- a/openatlas/static/manual/ui/menu.html +++ b/openatlas/static/manual/ui/menu.html @@ -5,7 +5,7 @@ - Menu — OpenAtlas 8.7.0 documentation + Menu — OpenAtlas 8.8.0 documentation @@ -33,7 +33,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/ui/name.html b/openatlas/static/manual/ui/name.html index 451563f38..2c759493e 100644 --- a/openatlas/static/manual/ui/name.html +++ b/openatlas/static/manual/ui/name.html @@ -5,7 +5,7 @@ - Name — OpenAtlas 8.7.0 documentation + Name — OpenAtlas 8.8.0 documentation @@ -33,7 +33,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/openatlas/static/manual/ui/table.html b/openatlas/static/manual/ui/table.html index 7f13de7dd..e2a77f393 100644 --- a/openatlas/static/manual/ui/table.html +++ b/openatlas/static/manual/ui/table.html @@ -5,7 +5,7 @@ - Table — OpenAtlas 8.7.0 documentation + Table — OpenAtlas 8.8.0 documentation @@ -33,7 +33,7 @@
            - 8.7.0 + 8.8.0
            diff --git a/sphinx/source/admin/import.rst b/sphinx/source/admin/import.rst index 758a7441b..294901b83 100644 --- a/sphinx/source/admin/import.rst +++ b/sphinx/source/admin/import.rst @@ -163,7 +163,7 @@ The imported data can be linked to an already existing whole cell in quotation marks, e.g. "1234;IV, 56-78 542;34-23 66;" * to link a :doc:`/entity/reference` without page numbers, just add the ID and a semicolon (**;**) without further information -* enter multiple :doc:`/entity/reference`s separated by a space, e.g. 1234; +* enter multiple :doc:`/entity/reference` separated by a space, e.g. 1234; 56-78 5678; * the ID of each :doc:`/entity/reference` can be found at the detail view of said reference in your OpenAtlas instance From 04d9bb0b05e3c848fd392126168d80bbf31f6ab2 Mon Sep 17 00:00:00 2001 From: Alexander Watzinger Date: Tue, 22 Oct 2024 08:50:39 +0200 Subject: [PATCH 09/21] Fix for broken export (#2371) --- config/default.py | 2 +- openatlas/views/changelog.py | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/config/default.py b/config/default.py index f9f466f14..80f20a62f 100644 --- a/config/default.py +++ b/config/default.py @@ -50,7 +50,7 @@ # e.g. PROXIES = { # 'http': 'http://someurl.org:8080', # 'https': 'http://someurl.org:8080'} -PROXIES = None +PROXIES: dict[str, str] = {} # Table options TABLE_ROWS = {10: '10', 25: '25', 50: '50', 100: '100'} diff --git a/openatlas/views/changelog.py b/openatlas/views/changelog.py index 5f09e508b..d4bb78384 100644 --- a/openatlas/views/changelog.py +++ b/openatlas/views/changelog.py @@ -16,7 +16,11 @@ def index_changelog() -> str: # pylint: disable=too-many-lines versions = { - '8.8.0': ['TBA', {}], + '8.8.0': ['TBA', { + 'fix': { + '2371': 'Broken export functions' + } + }], '8.7.0': ['2024-09-19', { 'feature': { '2339': 'Dates: additional checks', From 7077da0f0965f05c4264f495162170e276f4915a Mon Sep 17 00:00:00 2001 From: Alexander Watzinger Date: Fri, 25 Oct 2024 14:27:40 +0200 Subject: [PATCH 10/21] Fix for #2357 - wrong reference links --- install/upgrade/8.8.0.sql | 39 +++----------------------------------- openatlas/forms/process.py | 11 ++++++++--- tests/test_file.py | 9 +++++++++ 3 files changed, 20 insertions(+), 39 deletions(-) diff --git a/install/upgrade/8.8.0.sql b/install/upgrade/8.8.0.sql index 176d63f2e..63534d983 100644 --- a/install/upgrade/8.8.0.sql +++ b/install/upgrade/8.8.0.sql @@ -3,47 +3,14 @@ BEGIN; -- Raise database version UPDATE web.settings SET value = '8.8.0' WHERE name = 'database_version'; --- #2357: Wrong direction for external references with files --- This is work in progress! - - --- check general P67 counts -SELECT DISTINCT - count(l.property_code), - d.openatlas_class_name AS domain, - l.property_code, - r.openatlas_class_name AS range -FROM model.link l -JOIN model.entity d ON l.domain_id = d.id -JOIN model.entity r ON l.range_id = r.id -WHERE l.property_code = 'P67' -GROUP BY l.property_code, d.openatlas_class_name, r.openatlas_class_name -ORDER BY domain, range - - --- bibliography and edition should always be the domain for P67 - referenced by +-- #2357: Fix possible wrong direction for references with files UPDATE model.link SET (domain_id, range_id) = (range_id, domain_id) WHERE id IN ( SELECT l.id FROM model.link l - JOIN model.entity d ON l.domain_id = d.id - JOIN model.entity r ON l.range_id = r.id AND r.openatlas_class_name IN ('bibliography', 'edition') + JOIN model.entity d ON l.domain_id = d.id AND d.openatlas_class_name = 'file' + JOIN model.entity r ON l.range_id = r.id AND r.openatlas_class_name IN ('bibliography', 'edition', 'external_reference') WHERE l.property_code = 'P67'); - --- check for bad -- -SELECT l.id, property_code, domain_id, d.name, range_id, r.name - FROM model.link l - JOIN model.entity d ON l.domain_id = d.id - JOIN model.entity r ON l.range_id = r.id AND r.openatlas_class_name IN ('bibliography', 'edition') - WHERE l.property_code = 'P67' - --- check for good -- -SELECT l.id, property_code, domain_id, d.name, range_id, r.name - FROM model.link l - JOIN model.entity d ON l.domain_id = d.id AND d.openatlas_class_name IN ('bibliography', 'edition') - JOIN model.entity r ON l.range_id = r.id - WHERE l.property_code = 'P67' - END; diff --git a/openatlas/forms/process.py b/openatlas/forms/process.py index 9190d36ee..06121bcfe 100644 --- a/openatlas/forms/process.py +++ b/openatlas/forms/process.py @@ -130,9 +130,14 @@ def process_origin(manager: Any) -> None: elif manager.origin.class_.name == 'source' \ and manager.entity.class_.name != 'source_translation': manager.add_link('P67', manager.origin, inverse=True) - elif manager.origin.class_.name == 'file' \ - and manager.entity.class_.name != 'creation': - manager.add_link('P67', manager.origin, inverse=True) + elif manager.origin.class_.name == 'file': + if manager.entity.class_.view == 'reference': + manager.add_link( + 'P67', + manager.origin, + return_link_id=True) + elif manager.entity.class_.name != 'creation': + manager.add_link('P67', manager.origin, inverse=True) def process_dates(manager: Any) -> dict[str, Any]: diff --git a/tests/test_file.py b/tests/test_file.py index e691e1c77..ee6a36739 100644 --- a/tests/test_file.py +++ b/tests/test_file.py @@ -75,6 +75,15 @@ def test_file(self) -> None: rv = self.app.get(url_for('update', id_=iiif_id)) assert b'License' in rv.data + rv = self.app.post( + url_for( + 'insert', + class_='external_reference', + origin_id=iiif_id), + data={'name': 'https://openatlas.eu'}, + follow_redirects=True) + assert b'page' in rv.data + rv = self.app.get( url_for('delete_iiif_file', id_=iiif_id), follow_redirects=True) From 356c0290e037e5899aca0828fdcacbc3fe2a37a9 Mon Sep 17 00:00:00 2001 From: Alexander Watzinger Date: Fri, 25 Oct 2024 14:43:30 +0200 Subject: [PATCH 11/21] Update change log and upgrade notes --- install/upgrade/8.8.0.sql | 2 +- install/upgrade/upgrade.md | 3 +++ openatlas/views/changelog.py | 6 ++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/install/upgrade/8.8.0.sql b/install/upgrade/8.8.0.sql index 63534d983..965b0a2a3 100644 --- a/install/upgrade/8.8.0.sql +++ b/install/upgrade/8.8.0.sql @@ -3,7 +3,7 @@ BEGIN; -- Raise database version UPDATE web.settings SET value = '8.8.0' WHERE name = 'database_version'; --- #2357: Fix possible wrong direction for references with files +-- #2357: Fix possible wrong direction for reference links to files UPDATE model.link SET (domain_id, range_id) = (range_id, domain_id) WHERE id IN ( diff --git a/install/upgrade/upgrade.md b/install/upgrade/upgrade.md index c3eb73f19..aa5bd0cd0 100644 --- a/install/upgrade/upgrade.md +++ b/install/upgrade/upgrade.md @@ -17,6 +17,9 @@ then run the database upgrade script, then restart Apache: sudo python3 install/upgrade/database_upgrade.py sudo service apache2 restart +### 8.7.0 to 8.8.0 +8.8.0.sql is needed but will be taken care of by the database upgrade script. + ### 8.6.x to 8.7.0 No database update is required but an additional Python package is needed: diff --git a/openatlas/views/changelog.py b/openatlas/views/changelog.py index d4bb78384..7baa8bb27 100644 --- a/openatlas/views/changelog.py +++ b/openatlas/views/changelog.py @@ -17,9 +17,11 @@ def index_changelog() -> str: # pylint: disable=too-many-lines versions = { '8.8.0': ['TBA', { + 'feature': { + '2354': 'Page field of reference import should allow spaces'}, 'fix': { - '2371': 'Broken export functions' - } + '2357': 'Wrong direction for reference links to files', + '2371': 'Broken export functions'} }], '8.7.0': ['2024-09-19', { 'feature': { From c25ed8adcf3ef1a426c99eca0ee0fbbb29424f89 Mon Sep 17 00:00:00 2001 From: Bernhard Koschicek-Krombholz Date: Mon, 28 Oct 2024 15:14:52 +0100 Subject: [PATCH 12/21] changed origin_id to id in sphinx --- sphinx/source/admin/import.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sphinx/source/admin/import.rst b/sphinx/source/admin/import.rst index 294901b83..117d3e77c 100644 --- a/sphinx/source/admin/import.rst +++ b/sphinx/source/admin/import.rst @@ -19,7 +19,7 @@ Lists containing the following fields can be imported currently: * Reference systems * Administrative unit * Historical place -* origin_id +* Origin IDs * Place hierarchy Preparation @@ -68,7 +68,7 @@ imported and an error message will be displayed * **alias** - only available for person, group and place, see :ref:`Alias import` * **description** - a description can be provided -* **origin_id** - this field has to be **unique per project**; if you have +* **id** - this field has to be **unique per project**; if you have same IDs like a person and place with id = 1, you can prefix them in the document e.g. person_1, place_1 before importing * **begin_from** - used for dates, see :ref:`Dates import` @@ -207,7 +207,7 @@ Use the **parent_id** or **openatlas_parent_id** to generate a :doc:`/entity/place` hierarchy together with :doc:`/entity/feature`, :doc:`/entity/stratigraphic_unit`, :doc:`/entity/artifact`, and :doc:`/entity/human_remains`. -The **parent_id** has to be an **origin_id** of a row in the **current** +The **parent_id** has to be an origin **id** of a row in the **current** import file. The **openatlas_parent_id** has to be an **existing** OpenAtlas entity ID with the correct class. @@ -238,7 +238,7 @@ You can also browse the projects to see which imported entities are associated with them. If advanced layout is enabled, the detail view of an entity shows from which project the entity was imported, which user did the import and the -origin_id value. +origin ID value. **It is always a good idea to run :doc:`/admin/data_integrity_checks` after each import.** From 983eb305746191c4220f2595f4a6b478c1aba749 Mon Sep 17 00:00:00 2001 From: Alexander Watzinger Date: Mon, 28 Oct 2024 15:56:14 +0100 Subject: [PATCH 13/21] Added manual button and info to note form (#2349) --- openatlas/views/note.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openatlas/views/note.py b/openatlas/views/note.py index e35367c7f..93a0543c8 100644 --- a/openatlas/views/note.py +++ b/openatlas/views/note.py @@ -82,7 +82,8 @@ def note_insert(entity_id: int) -> str | Response: return redirect(f"{url_for('view', id_=entity.id)}#tab-note") return render_template( 'content.html', - content=display_form(form), + content='

            ' + _('notes info') + '

            ' + + display_form(form, manual_page='tools/notes'), entity=entity, crumbs=[ [_(entity.class_.view), url_for('index', view=entity.class_.view)], From 09df1e42dfa7cb2081e4db61b140f64fc64ad660 Mon Sep 17 00:00:00 2001 From: Alexander Watzinger Date: Mon, 28 Oct 2024 16:13:49 +0100 Subject: [PATCH 14/21] Translations --- .../translations/ca/LC_MESSAGES/messages.po | 110 +++++++++-------- .../translations/de/LC_MESSAGES/messages.mo | Bin 38606 -> 38760 bytes .../translations/de/LC_MESSAGES/messages.po | 114 +++++++++--------- .../translations/en/LC_MESSAGES/messages.mo | Bin 36247 -> 36359 bytes .../translations/en/LC_MESSAGES/messages.po | 113 ++++++++--------- .../translations/es/LC_MESSAGES/messages.po | 110 +++++++++-------- .../translations/fr/LC_MESSAGES/messages.po | 111 ++++++++--------- openatlas/translations/messages.pot | 106 ++++++++-------- 8 files changed, 343 insertions(+), 321 deletions(-) diff --git a/openatlas/translations/ca/LC_MESSAGES/messages.po b/openatlas/translations/ca/LC_MESSAGES/messages.po index 77496dcb8..445cac56e 100644 --- a/openatlas/translations/ca/LC_MESSAGES/messages.po +++ b/openatlas/translations/ca/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-09-09 15:42+0200\n" +"POT-Creation-Date: 2024-10-28 15:56+0100\n" "PO-Revision-Date: 2024-08-13 16:43+0200\n" "Last-Translator: Enric Rodellas \n" "Language: ca\n" @@ -57,7 +57,7 @@ msgstr "Suprimir %(name)s?" #: openatlas/templates/type/index.html:78 #: openatlas/templates/util/translations.html:6 openatlas/views/admin.py:540 #: openatlas/views/admin.py:560 openatlas/views/annotation.py:41 -#: openatlas/views/export.py:56 openatlas/views/imports.py:179 +#: openatlas/views/export.py:56 openatlas/views/imports.py:178 #: openatlas/views/note.py:39 openatlas/views/tools.py:95 #: openatlas/views/tools.py:97 openatlas/views/type.py:136 #: openatlas/views/user.py:79 openatlas/views/user.py:165 @@ -73,7 +73,7 @@ msgstr "suprimeix" #: openatlas/views/admin.py:124 openatlas/views/admin.py:435 #: openatlas/views/annotation.py:50 openatlas/views/file.py:39 #: openatlas/views/file.py:50 openatlas/views/hierarchy.py:112 -#: openatlas/views/imports.py:176 openatlas/views/imports.py:240 +#: openatlas/views/imports.py:175 openatlas/views/imports.py:239 #: openatlas/views/link.py:84 openatlas/views/link.py:148 #: openatlas/views/note.py:38 openatlas/views/profile.py:78 #: openatlas/views/profile.py:82 openatlas/views/profile.py:85 @@ -212,7 +212,7 @@ msgstr "ID per a importacions" #: openatlas/display/base_display.py:552 openatlas/display/tab.py:95 #: openatlas/forms/add_fields.py:236 openatlas/forms/base_manager.py:141 #: openatlas/forms/field.py:217 openatlas/forms/manager.py:530 -#: openatlas/views/arche.py:36 openatlas/views/imports.py:67 +#: openatlas/views/arche.py:36 openatlas/views/imports.py:66 #: openatlas/views/index.py:71 openatlas/views/profile.py:61 #: openatlas/views/vocabs.py:82 msgid "name" @@ -459,7 +459,7 @@ msgstr "veure totes les imatges IIIF" #: openatlas/display/tab.py:262 openatlas/views/index.py:64 #: openatlas/views/note.py:50 openatlas/views/note.py:56 -#: openatlas/views/note.py:91 +#: openatlas/views/note.py:92 msgid "note" msgstr "nota" @@ -635,8 +635,8 @@ msgstr "comentari" #: openatlas/forms/field.py:232 #: openatlas/templates/model/cidoc_class_view.html:8 #: openatlas/templates/model/property_view.html:8 -#: openatlas/templates/type/index.html:136 openatlas/views/imports.py:70 -#: openatlas/views/imports.py:130 openatlas/views/index.py:138 +#: openatlas/templates/type/index.html:136 openatlas/views/imports.py:69 +#: openatlas/views/imports.py:129 openatlas/views/index.py:138 #: openatlas/views/note.py:22 msgid "description" msgstr "descripció" @@ -647,7 +647,7 @@ msgstr "descripció" #: openatlas/templates/forms/tree_multi_select.html:111 #: openatlas/templates/forms/tree_multi_select.html:132 #: openatlas/templates/forms/tree_select.html:96 -#: openatlas/templates/forms/tree_select.html:123 openatlas/views/imports.py:71 +#: openatlas/templates/forms/tree_select.html:123 openatlas/views/imports.py:70 #: openatlas/views/user.py:77 msgid "insert" msgstr "inserta" @@ -660,7 +660,7 @@ msgstr "inserta" #: openatlas/forms/setting.py:143 openatlas/forms/setting.py:163 #: openatlas/templates/util/translations.html:4 openatlas/views/admin.py:195 #: openatlas/views/link.py:137 openatlas/views/note.py:23 -#: openatlas/views/note.py:106 openatlas/views/overlay.py:28 +#: openatlas/views/note.py:107 openatlas/views/overlay.py:28 #: openatlas/views/profile.py:30 openatlas/views/tools.py:160 #: openatlas/views/tools.py:239 openatlas/views/user.py:44 msgid "save" @@ -761,7 +761,7 @@ msgstr "unitat estratigràfica" #: openatlas/views/annotation.py:88 openatlas/views/entity_index.py:30 #: openatlas/views/file.py:42 openatlas/views/file.py:60 #: openatlas/views/file.py:62 openatlas/views/file.py:230 -#: openatlas/views/imports.py:252 +#: openatlas/views/imports.py:251 msgid "file" msgstr "fitxer" @@ -1097,11 +1097,11 @@ msgstr "on" msgid "off" msgstr "off" -#: openatlas/forms/validation.py:21 openatlas/views/imports.py:260 +#: openatlas/forms/validation.py:21 openatlas/views/imports.py:259 msgid "file type not allowed" msgstr "tipus de fitxer no permès" -#: openatlas/forms/validation.py:28 openatlas/views/imports.py:78 +#: openatlas/forms/validation.py:28 openatlas/views/imports.py:77 msgid "error name exists" msgstr "el nom ja existeix" @@ -1290,19 +1290,19 @@ msgstr "extensions permeses" msgid "example files" msgstr "fitxers d'exemple" -#: openatlas/templates/import_data.html:22 +#: openatlas/templates/import_data.html:23 msgid "error" msgstr "error" -#: openatlas/templates/import_data.html:25 +#: openatlas/templates/import_data.html:26 msgid "warning" msgstr "avís" -#: openatlas/templates/import_data.html:30 +#: openatlas/templates/import_data.html:31 msgid "imported" msgstr "importat" -#: openatlas/templates/import_data.html:32 +#: openatlas/templates/import_data.html:33 msgid "preview" msgstr "vista prèvia" @@ -1331,10 +1331,10 @@ msgstr "compte" #: openatlas/views/admin.py:617 openatlas/views/admin.py:619 #: openatlas/views/admin.py:725 openatlas/views/admin.py:727 #: openatlas/views/admin.py:796 openatlas/views/arche.py:30 -#: openatlas/views/export.py:76 openatlas/views/imports.py:145 -#: openatlas/views/imports.py:162 openatlas/views/imports.py:215 -#: openatlas/views/imports.py:237 openatlas/views/imports.py:294 -#: openatlas/views/imports.py:320 openatlas/views/sql.py:29 +#: openatlas/views/export.py:76 openatlas/views/imports.py:144 +#: openatlas/views/imports.py:161 openatlas/views/imports.py:214 +#: openatlas/views/imports.py:236 openatlas/views/imports.py:293 +#: openatlas/views/imports.py:319 openatlas/views/sql.py:29 #: openatlas/views/sql.py:60 openatlas/views/user.py:128 #: openatlas/views/user.py:180 openatlas/views/user.py:220 #: openatlas/views/user.py:256 openatlas/views/user.py:315 @@ -1455,13 +1455,13 @@ msgid "data transfer" msgstr "transferència de dades" #: openatlas/templates/admin/data.html:13 -#: openatlas/templates/util/translations.html:8 openatlas/views/imports.py:143 -#: openatlas/views/imports.py:146 openatlas/views/imports.py:160 -#: openatlas/views/imports.py:163 openatlas/views/imports.py:213 -#: openatlas/views/imports.py:216 openatlas/views/imports.py:235 -#: openatlas/views/imports.py:238 openatlas/views/imports.py:255 -#: openatlas/views/imports.py:292 openatlas/views/imports.py:295 -#: openatlas/views/imports.py:321 openatlas/views/vocabs.py:86 +#: openatlas/templates/util/translations.html:8 openatlas/views/imports.py:142 +#: openatlas/views/imports.py:145 openatlas/views/imports.py:159 +#: openatlas/views/imports.py:162 openatlas/views/imports.py:212 +#: openatlas/views/imports.py:215 openatlas/views/imports.py:234 +#: openatlas/views/imports.py:237 openatlas/views/imports.py:254 +#: openatlas/views/imports.py:291 openatlas/views/imports.py:294 +#: openatlas/views/imports.py:320 openatlas/views/vocabs.py:86 #: openatlas/views/vocabs.py:87 msgid "import" msgstr "importar" @@ -1959,7 +1959,7 @@ msgstr "IIIF" #: openatlas/views/admin.py:349 openatlas/views/arche.py:66 #: openatlas/views/entity.py:236 openatlas/views/entity.py:271 #: openatlas/views/hierarchy.py:40 openatlas/views/hierarchy.py:84 -#: openatlas/views/imports.py:311 openatlas/views/link.py:73 +#: openatlas/views/imports.py:310 openatlas/views/link.py:73 #: openatlas/views/link.py:103 openatlas/views/profile.py:123 #: openatlas/views/sql.py:52 openatlas/views/tools.py:135 #: openatlas/views/tools.py:174 openatlas/views/vocabs.py:182 @@ -2232,80 +2232,76 @@ msgid "invalid OpenAtlas class" msgstr "classe OpenAtlas no vàlida" #: openatlas/views/imports.py:53 -msgid "invalid references" -msgstr "referències no vàlides" - -#: openatlas/views/imports.py:54 msgid "invalid reference id" msgstr "id de referència no vàlid" -#: openatlas/views/imports.py:55 +#: openatlas/views/imports.py:54 msgid "empty names" msgstr "noms buits" -#: openatlas/views/imports.py:56 +#: openatlas/views/imports.py:55 msgid "empty ids" msgstr "ids buits" -#: openatlas/views/imports.py:57 openatlas/views/imports.py:119 +#: openatlas/views/imports.py:56 openatlas/views/imports.py:118 msgid "missing name column" msgstr "falta el nom de la columna" -#: openatlas/views/imports.py:58 +#: openatlas/views/imports.py:57 msgid "ids already in database" msgstr "ids ja existeixen a la base de dades" -#: openatlas/views/imports.py:59 +#: openatlas/views/imports.py:58 msgid "double ids in import" msgstr "ids dobles a la importació" -#: openatlas/views/imports.py:60 +#: openatlas/views/imports.py:59 msgid "multiple parent ids" msgstr "ids de pares múltiples" -#: openatlas/views/imports.py:61 +#: openatlas/views/imports.py:60 msgid "invalid openatlas parent id" msgstr "id de pare d'OpenAtlas no válida" -#: openatlas/views/imports.py:130 openatlas/views/imports.py:138 -#: openatlas/views/imports.py:164 +#: openatlas/views/imports.py:129 openatlas/views/imports.py:137 +#: openatlas/views/imports.py:163 msgid "project" msgstr "projecte" -#: openatlas/views/imports.py:130 openatlas/views/model.py:62 +#: openatlas/views/imports.py:129 openatlas/views/model.py:62 msgid "entities" msgstr "entitats" -#: openatlas/views/imports.py:155 +#: openatlas/views/imports.py:154 msgid "project inserted" msgstr "projecte insertat" -#: openatlas/views/imports.py:183 +#: openatlas/views/imports.py:182 #, python-format msgid "delete %(name)s?" msgstr "elimina %(name)s?" -#: openatlas/views/imports.py:185 +#: openatlas/views/imports.py:184 msgid "new import" msgstr "nova importació" -#: openatlas/views/imports.py:230 +#: openatlas/views/imports.py:229 msgid "project updated" msgstr "projecte actualitzat" -#: openatlas/views/imports.py:247 +#: openatlas/views/imports.py:246 msgid "project deleted" msgstr "projecte eliminat" -#: openatlas/views/imports.py:253 +#: openatlas/views/imports.py:252 msgid "preview only" msgstr "només previsualització" -#: openatlas/views/imports.py:254 +#: openatlas/views/imports.py:253 msgid "check for duplicates" msgstr "comprovar si hi ha duplicats" -#: openatlas/views/imports.py:286 +#: openatlas/views/imports.py:285 msgid "error at import" msgstr "error a la importació" @@ -2523,7 +2519,7 @@ msgstr "clàssic" msgid "set private" msgstr "marca-ho privat" -#: openatlas/views/note.py:66 openatlas/views/note.py:104 +#: openatlas/views/note.py:66 openatlas/views/note.py:105 msgid "note updated" msgstr "nota actualitzada" @@ -2531,11 +2527,16 @@ msgstr "nota actualitzada" msgid "note added" msgstr "nota afegida" -#: openatlas/views/note.py:116 +#: openatlas/views/note.py:85 +#, fuzzy +msgid "notes info" +msgstr "notas" + +#: openatlas/views/note.py:117 msgid "edit note" msgstr "edita nota" -#: openatlas/views/note.py:126 +#: openatlas/views/note.py:127 msgid "note deleted" msgstr "nota eliminada" @@ -2757,3 +2758,6 @@ msgstr "Esteu a punt d'importar la jerarquia següent" #~ msgid "actor" #~ msgstr "actor" +#~ msgid "invalid references" +#~ msgstr "referències no vàlides" + diff --git a/openatlas/translations/de/LC_MESSAGES/messages.mo b/openatlas/translations/de/LC_MESSAGES/messages.mo index c2fe76a4f1e56af1a77baf281cd739e99ae5857a..bb73e4f6c1a5e7780c072740ec758eb9a91e75b8 100644 GIT binary patch delta 8399 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 NuWWbd$&$Z@|39$0m)-yX delta 8231 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 LZ{L=sCqn-RNFPq> diff --git a/openatlas/translations/de/LC_MESSAGES/messages.po b/openatlas/translations/de/LC_MESSAGES/messages.po index 28ce4716c..2d716ecd9 100644 --- a/openatlas/translations/de/LC_MESSAGES/messages.po +++ b/openatlas/translations/de/LC_MESSAGES/messages.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-09-09 15:42+0200\n" -"PO-Revision-Date: 2024-09-09 15:47+0200\n" +"POT-Creation-Date: 2024-10-28 15:56+0100\n" +"PO-Revision-Date: 2024-10-28 16:04+0100\n" "Last-Translator: Alexander Watzinger \n" "Language-Team: de \n" "Language: de\n" @@ -57,7 +57,7 @@ msgstr "%(name)s löschen?" #: openatlas/templates/type/index.html:78 #: openatlas/templates/util/translations.html:6 openatlas/views/admin.py:540 #: openatlas/views/admin.py:560 openatlas/views/annotation.py:41 -#: openatlas/views/export.py:56 openatlas/views/imports.py:179 +#: openatlas/views/export.py:56 openatlas/views/imports.py:178 #: openatlas/views/note.py:39 openatlas/views/tools.py:95 #: openatlas/views/tools.py:97 openatlas/views/type.py:136 #: openatlas/views/user.py:79 openatlas/views/user.py:165 @@ -73,7 +73,7 @@ msgstr "löschen" #: openatlas/views/admin.py:124 openatlas/views/admin.py:435 #: openatlas/views/annotation.py:50 openatlas/views/file.py:39 #: openatlas/views/file.py:50 openatlas/views/hierarchy.py:112 -#: openatlas/views/imports.py:176 openatlas/views/imports.py:240 +#: openatlas/views/imports.py:175 openatlas/views/imports.py:239 #: openatlas/views/link.py:84 openatlas/views/link.py:148 #: openatlas/views/note.py:38 openatlas/views/profile.py:78 #: openatlas/views/profile.py:82 openatlas/views/profile.py:85 @@ -211,7 +211,7 @@ msgstr "ID für Importe" #: openatlas/display/base_display.py:552 openatlas/display/tab.py:95 #: openatlas/forms/add_fields.py:236 openatlas/forms/base_manager.py:141 #: openatlas/forms/field.py:217 openatlas/forms/manager.py:530 -#: openatlas/views/arche.py:36 openatlas/views/imports.py:67 +#: openatlas/views/arche.py:36 openatlas/views/imports.py:66 #: openatlas/views/index.py:71 openatlas/views/profile.py:61 #: openatlas/views/vocabs.py:82 msgid "name" @@ -454,7 +454,7 @@ msgid "view all IIIF images" msgstr "alle IIIF Bilder anzeigen" #: openatlas/display/tab.py:262 openatlas/views/index.py:64 -#: openatlas/views/note.py:50 openatlas/views/note.py:56 openatlas/views/note.py:91 +#: openatlas/views/note.py:50 openatlas/views/note.py:56 openatlas/views/note.py:92 msgid "note" msgstr "Notiz" @@ -628,8 +628,8 @@ msgstr "Beschreibung" #: openatlas/forms/add_fields.py:244 openatlas/forms/base_manager.py:133 #: openatlas/forms/field.py:232 openatlas/templates/model/cidoc_class_view.html:8 #: openatlas/templates/model/property_view.html:8 -#: openatlas/templates/type/index.html:136 openatlas/views/imports.py:70 -#: openatlas/views/imports.py:130 openatlas/views/index.py:138 +#: openatlas/templates/type/index.html:136 openatlas/views/imports.py:69 +#: openatlas/views/imports.py:129 openatlas/views/index.py:138 #: openatlas/views/note.py:22 msgid "description" msgstr "Beschreibung" @@ -640,7 +640,7 @@ msgstr "Beschreibung" #: openatlas/templates/forms/tree_multi_select.html:111 #: openatlas/templates/forms/tree_multi_select.html:132 #: openatlas/templates/forms/tree_select.html:96 -#: openatlas/templates/forms/tree_select.html:123 openatlas/views/imports.py:71 +#: openatlas/templates/forms/tree_select.html:123 openatlas/views/imports.py:70 #: openatlas/views/user.py:77 msgid "insert" msgstr "anlegen" @@ -653,7 +653,7 @@ msgstr "anlegen" #: openatlas/forms/setting.py:143 openatlas/forms/setting.py:163 #: openatlas/templates/util/translations.html:4 openatlas/views/admin.py:195 #: openatlas/views/link.py:137 openatlas/views/note.py:23 -#: openatlas/views/note.py:106 openatlas/views/overlay.py:28 +#: openatlas/views/note.py:107 openatlas/views/overlay.py:28 #: openatlas/views/profile.py:30 openatlas/views/tools.py:160 #: openatlas/views/tools.py:239 openatlas/views/user.py:44 msgid "save" @@ -753,7 +753,7 @@ msgstr "stratigraphische Einheit" #: openatlas/views/admin.py:326 openatlas/views/annotation.py:65 #: openatlas/views/annotation.py:88 openatlas/views/entity_index.py:30 #: openatlas/views/file.py:42 openatlas/views/file.py:60 openatlas/views/file.py:62 -#: openatlas/views/file.py:230 openatlas/views/imports.py:252 +#: openatlas/views/file.py:230 openatlas/views/imports.py:251 msgid "file" msgstr "Datei" @@ -1081,11 +1081,11 @@ msgstr "An" msgid "off" msgstr "Aus" -#: openatlas/forms/validation.py:21 openatlas/views/imports.py:260 +#: openatlas/forms/validation.py:21 openatlas/views/imports.py:259 msgid "file type not allowed" msgstr "Dateityp nicht erlaubt" -#: openatlas/forms/validation.py:28 openatlas/views/imports.py:78 +#: openatlas/forms/validation.py:28 openatlas/views/imports.py:77 msgid "error name exists" msgstr "dieser Name wird bereits verwendet" @@ -1272,19 +1272,19 @@ msgstr "Erlaubte Erweiterungen" msgid "example files" msgstr "Beispieldateien" -#: openatlas/templates/import_data.html:22 +#: openatlas/templates/import_data.html:23 msgid "error" msgstr "Fehler" -#: openatlas/templates/import_data.html:25 +#: openatlas/templates/import_data.html:26 msgid "warning" msgstr "Warnung" -#: openatlas/templates/import_data.html:30 +#: openatlas/templates/import_data.html:31 msgid "imported" msgstr "importiert" -#: openatlas/templates/import_data.html:32 +#: openatlas/templates/import_data.html:33 msgid "preview" msgstr "Vorschau" @@ -1313,10 +1313,10 @@ msgstr "Profil" #: openatlas/views/admin.py:617 openatlas/views/admin.py:619 #: openatlas/views/admin.py:725 openatlas/views/admin.py:727 #: openatlas/views/admin.py:796 openatlas/views/arche.py:30 -#: openatlas/views/export.py:76 openatlas/views/imports.py:145 -#: openatlas/views/imports.py:162 openatlas/views/imports.py:215 -#: openatlas/views/imports.py:237 openatlas/views/imports.py:294 -#: openatlas/views/imports.py:320 openatlas/views/sql.py:29 +#: openatlas/views/export.py:76 openatlas/views/imports.py:144 +#: openatlas/views/imports.py:161 openatlas/views/imports.py:214 +#: openatlas/views/imports.py:236 openatlas/views/imports.py:293 +#: openatlas/views/imports.py:319 openatlas/views/sql.py:29 #: openatlas/views/sql.py:60 openatlas/views/user.py:128 #: openatlas/views/user.py:180 openatlas/views/user.py:220 #: openatlas/views/user.py:256 openatlas/views/user.py:315 @@ -1437,13 +1437,13 @@ msgid "data transfer" msgstr "Daten-Transfer" #: openatlas/templates/admin/data.html:13 -#: openatlas/templates/util/translations.html:8 openatlas/views/imports.py:143 -#: openatlas/views/imports.py:146 openatlas/views/imports.py:160 -#: openatlas/views/imports.py:163 openatlas/views/imports.py:213 -#: openatlas/views/imports.py:216 openatlas/views/imports.py:235 -#: openatlas/views/imports.py:238 openatlas/views/imports.py:255 -#: openatlas/views/imports.py:292 openatlas/views/imports.py:295 -#: openatlas/views/imports.py:321 openatlas/views/vocabs.py:86 +#: openatlas/templates/util/translations.html:8 openatlas/views/imports.py:142 +#: openatlas/views/imports.py:145 openatlas/views/imports.py:159 +#: openatlas/views/imports.py:162 openatlas/views/imports.py:212 +#: openatlas/views/imports.py:215 openatlas/views/imports.py:234 +#: openatlas/views/imports.py:237 openatlas/views/imports.py:254 +#: openatlas/views/imports.py:291 openatlas/views/imports.py:294 +#: openatlas/views/imports.py:320 openatlas/views/vocabs.py:86 #: openatlas/views/vocabs.py:87 msgid "import" msgstr "Import" @@ -1944,7 +1944,7 @@ msgstr "IIIF" #: openatlas/views/admin.py:349 openatlas/views/arche.py:66 #: openatlas/views/entity.py:236 openatlas/views/entity.py:271 #: openatlas/views/hierarchy.py:40 openatlas/views/hierarchy.py:84 -#: openatlas/views/imports.py:311 openatlas/views/link.py:73 +#: openatlas/views/imports.py:310 openatlas/views/link.py:73 #: openatlas/views/link.py:103 openatlas/views/profile.py:123 #: openatlas/views/sql.py:52 openatlas/views/tools.py:135 #: openatlas/views/tools.py:174 openatlas/views/vocabs.py:182 @@ -2216,80 +2216,76 @@ msgid "invalid OpenAtlas class" msgstr "ungültige OpenAtlas Klasse" #: openatlas/views/imports.py:53 -msgid "invalid references" -msgstr "ungültige Referenzen" - -#: openatlas/views/imports.py:54 msgid "invalid reference id" msgstr "ungültige Referenz ID" -#: openatlas/views/imports.py:55 +#: openatlas/views/imports.py:54 msgid "empty names" msgstr "Leere Namensfelder" -#: openatlas/views/imports.py:56 +#: openatlas/views/imports.py:55 msgid "empty ids" msgstr "leere IDs" -#: openatlas/views/imports.py:57 openatlas/views/imports.py:119 +#: openatlas/views/imports.py:56 openatlas/views/imports.py:118 msgid "missing name column" msgstr "Name-Spalte fehlt" -#: openatlas/views/imports.py:58 +#: openatlas/views/imports.py:57 msgid "ids already in database" msgstr "IDs schon in der Datenbank vorhanden" -#: openatlas/views/imports.py:59 +#: openatlas/views/imports.py:58 msgid "double ids in import" msgstr "Doppelte IDs beim importierten" -#: openatlas/views/imports.py:60 +#: openatlas/views/imports.py:59 msgid "multiple parent ids" msgstr "mehrfache super IDs" -#: openatlas/views/imports.py:61 +#: openatlas/views/imports.py:60 msgid "invalid openatlas parent id" msgstr "ungültige OpenAtlas super ID" -#: openatlas/views/imports.py:130 openatlas/views/imports.py:138 -#: openatlas/views/imports.py:164 +#: openatlas/views/imports.py:129 openatlas/views/imports.py:137 +#: openatlas/views/imports.py:163 msgid "project" msgstr "Projekt" -#: openatlas/views/imports.py:130 openatlas/views/model.py:62 +#: openatlas/views/imports.py:129 openatlas/views/model.py:62 msgid "entities" msgstr "Entitäten" -#: openatlas/views/imports.py:155 +#: openatlas/views/imports.py:154 msgid "project inserted" msgstr "Projekt angelegt" -#: openatlas/views/imports.py:183 +#: openatlas/views/imports.py:182 #, python-format msgid "delete %(name)s?" msgstr "%(name)s löschen?" -#: openatlas/views/imports.py:185 +#: openatlas/views/imports.py:184 msgid "new import" msgstr "Neuer Import" -#: openatlas/views/imports.py:230 +#: openatlas/views/imports.py:229 msgid "project updated" msgstr "Projekt gespeichert" -#: openatlas/views/imports.py:247 +#: openatlas/views/imports.py:246 msgid "project deleted" msgstr "Projekt wurde gelöscht" -#: openatlas/views/imports.py:253 +#: openatlas/views/imports.py:252 msgid "preview only" msgstr "Nur Vorschau" -#: openatlas/views/imports.py:254 +#: openatlas/views/imports.py:253 msgid "check for duplicates" msgstr "Auf Duplikate prüfen" -#: openatlas/views/imports.py:286 +#: openatlas/views/imports.py:285 msgid "error at import" msgstr "Fehler beim Import" @@ -2504,7 +2500,7 @@ msgstr "klassisch" msgid "set private" msgstr "auf Privat stellen" -#: openatlas/views/note.py:66 openatlas/views/note.py:104 +#: openatlas/views/note.py:66 openatlas/views/note.py:105 msgid "note updated" msgstr "Die Notiz wurde geändert" @@ -2512,11 +2508,18 @@ msgstr "Die Notiz wurde geändert" msgid "note added" msgstr "Eine Notiz wurde hinzugefügt" -#: openatlas/views/note.py:116 +#: openatlas/views/note.py:85 +msgid "notes info" +msgstr "" +"Notizen sind nur ein zusätzliches Werkzeug um den Workflow zu unterstützen. Sie " +"sind nicht Teil des Modells, werden nicht auf Präsentationsseiten gezeigt und " +"auch nicht archiviert." + +#: openatlas/views/note.py:117 msgid "edit note" msgstr "Notiz bearbeiten" -#: openatlas/views/note.py:126 +#: openatlas/views/note.py:127 msgid "note deleted" msgstr "Die Notiz wurde gelöscht" @@ -2739,3 +2742,6 @@ msgstr "Du bist dabei folgende Hierarchien zu importieren" #~ msgid "actor" #~ msgstr "Akteur" + +#~ msgid "invalid references" +#~ msgstr "ungültige Referenzen" diff --git a/openatlas/translations/en/LC_MESSAGES/messages.mo b/openatlas/translations/en/LC_MESSAGES/messages.mo index 370083abb91c8bbfacf239ad318ed3cc2662db54..88021107ad2ccb6d8a77e7580609ee63ba257304 100644 GIT binary patch delta 8358 zcmXxo33OG(9mnzavH;m2Ap}f9$O|E4Bg-S~ASA4XAP{6p*usl>fk4QPVa)?nAknaR zqku&=OR1tB3d*TctQ%GeSc;_z))u6xXe)wBLBZPZk2}pd_k3pN&Yk(sf9BrDVcXCB zHth5}v@^&T;cz(K81Ha|<5}#AmoXY|V2*BsD6TXak@D0=ir%?UQqxyY<3iuK#kQ=CeKcM;r z!la;1yKh z$58>D$0+=}X}^h~)WaUI1BgKd*pd2pRH_S6fmEOt+9;Xdv7Uk=+k{%#HdKT=P5Vox{U|DcW2nI1 zMg{&p>iG{*EB-6S;||CnSIzzRP#O9ZwbCobuZ*`){hd?Ee*}fjQ|*X)p(gHY9E_c*=b|Eh5VZo2 zu?7{$TGSplqbA&iz3^A4jGjR)>>_H5+feg->7$TH;Rc3a)Pr`%1Y;l6fCEtv=AmAn zv8cmUj5>UksOM`F^_VrXDcee!aS(CWt|` zr=TVtiaNAELk&CyHO@@b%IBaKvIKP&mYI5^u?fTV{MLv44rAOFafpl zOw|2h*bOIP43?n+UTbVM9zbR2b=2Pf9<_C6QGr}U9pZnXPZ8gtARUGF9tNUT-UYRS zcvK)ssD3%9fd`rUd8mNKVOK0cO|%@fHO;8Au@yDW9@IE57n1*e6pqlKh_4!Nq9*Vw zvI7Z01=1C@=iN~Q^g?AU74`gZ)WrFy1oqX zL=EUa%QhU9vN%+~4Ag5k7@u+SDa9n}AJ3)@|BF3w&>Z_aFdL((ufZ661~1^NJ_@N6 zHqW)caIc{b&t=p~{(*}8CZ=HGJo{I1BIZ&rG4{O3Cy3D_UCS2Iy5E;IGTs6)5{m4PQvE833nco;SCIaKC?J?8brIO;LR zL8uJOKo;b4)KJKx;Tcrqe?YDLCh9P?E3s1@hZ;Bm(=ihj&@AkZ6_|rfsI54T!|@8< zhdm#%Gd&dbTjE83z5gu~l$xzrga@z^ouv-PYOF>DbPfCCPq+a4d+iK8iwbBTPQ(vT zTN+ztXKD=UEhsP+q7HX4c4U6XLKUz9mD=?fh)-f9Za4K8(VzNZR0@xxQu`;=Y5p4Z zJ-CIMAeboi7DS@jd!RDmMjiSI=u=7yDQIFZYT_Ey01fDeYcK#GG3^^s{kEb$EZb0l z>_v_DJJj>1QE$z8RKGTCk6)wayS0G)x1->{(EhRoV+!@2sP=r+08>!|l$iDk)Bts; z_uq%w!dBx8=KhswR<}#+B+Ov%VjKffYjYO?vys^Mo zgi5&wbvP@Gji`XPpfb4=wdH$#6g1Hx)C!KG20o37@Xy!*+syrIs8k0mvitQ!J(q^s z(_GZVlTZ`QM~&}Ajknmi3Y8IG3k40Z2eq=Jro(Ym#2=XZ7ft(h%%WsXBEY#;XWfvSDq6YW`b-KSntvsy4UU64cy&o#j`!N_t zqb8V)It$ZL{T87zQisauT2w}wFbFqcpx*!OrePO`aN}2~RK0?F-AFXo>I_&IirZ_+zxHy!>2M5{ z+P6@9--ey=3)F+(qbB|@Y9;OK?1>^!0VJXZ?u*LI2-L*+s6Yygg{HmOM?nL7QJ>mH zroIFEZTx0HULFV;2enCN} z^DuVC)5gD}CjJIfu;at_fCI4$^~tDTvr<$*tBpHRD?f(H%o*&8e?!f46BS^m2Aw7L zKaqk`k&a5uKve2;Q7M~%O6hb|rskmbcoAyF4W@lPYMfTop6@|r@Rz8SA4ENO3^o4y zc<=o`M?oDwMn(K7Dv)caj<-+)I+xk~+M@yrMYTtw0*yxX?}ZvK)0l%AZxE_q9%>;I z@!r4xXHn3A#i$jOp$4wSM{t>`-$fU7zvcF8n1~Chr=uopMNPB=$KpQJxL;sDypDO8 zw1V@13s#VS9gb5pXz#D0QgjD3P=}TFo=2comWolBW7@}~`g>3-szmMWD%9Jw1+@?h z)o%wz<1bO;zqykA*B+jvK_8ZnQ7gHG8n6vDz_+M=-=hZVu*%Lv6l$OWcpr{H1yG0@ zrvf!@4eAUmM=hWUwH3R4rtkvlfmczHzmCetaqNa?Q4d^2o&Il8r@X^zJAfF}*-1o= z(+|~uFe>2D#sbuW=3z7XN-1cMzD7m(A5;MC8tpG&5Nd!hRC^366LF}O_CW=bi(2Va z<1AEWN>BkUMg>@H+Sl6cK1VYJ1+W|8y>OoMS9SrMv?5z@w;uTFm|J*q!qCmMCQ`l5b*^H2kfG3^DY70yQmSYz5( zpvGx3_cx(3wi}c1C@O%zqR!Iis4c#`j{GZ57f$1P?_nE3TPB6rBg8*OU?bK zP%C~8HQ@`Wao$1&bjsX6i%R)N=!ajT#{bG^Zrnjl-0@NSFvg+=PDBlqhFWaEw3lAVuRmy=>6=F#>wZAn}Tqsj{FoftL6 z^rXR&!oe9$eVR3<_sX~hls=%fnrkcN+jy31JJ(3-)7~?~9y8A#rDcPammC|hn3m3r z63msv)nF}2j*VVM>tt&B(-(Oq^)~ccdy_{+JwlCtM>sBXo#bky?zX;99u+vA(l{$G zCDu9BnwygB^jVLkq5$d&WTn=YPz%4DoRZ(dWzPoT+_J*aVfd_TSYmX z>;He1l=G?lf-8==TBr}F+}`wQM_Ul(Ib0jLnyvGxBZ6j{yPK@Iw1I)S)JmcU`nCx86#NjMzdcg;xFDp*-AbOB)(tQOe=^ zh^v}wpyf_a4qQ)Zm^C*&J?vph`n!aat*6pg#@Tg#h)v--cVa2O!S$$>(I?%RXBG9y zN_c|y5F+@(jG*rKQ|>~Wj&qUqJbeqS^L;i1&7i%OYlP*^m>vBfr785%-)hQ#vx|;? z)`g7ZhzeTLxx34>Znh#albyxZ;LKv@1J;hrQBiZ%gS$O3gljatms&S6;}i0!MN#`1 zj-$s*T*X|iTyU1KHhDN73Gc_5`lqapiI?qV0XukBL48lX#}g zYRQgumRQecr-zN@{u$a|!b0nEcBJzm>t=S2^GPe!ofFZQ*8W^2^oZe_Z!K{rItN=@ z-I2}-)_%%0M^3tb>~`eB_z8i*l~wiLI#+pRS(Vkedfbun$wNary0bI-4sy8%49Rw< zXSaSJx;&LGPibj+eR)--r@~cVRaN0CtEzP^uUcB` zYN)DRTvk!lkm;JX(7W8F?#$$>_SDw9s>)pT3%#yVPrb*rq^i_g!APY%QTf@L9rdod rg;fp2?+fB1ql@i6tT;NF$r@#=Z=q)*uODi#3*5LQoNV`r2bxu2?El%b>+5 z6*aArKB&^pv}G())lF1Ki&9H1ZKw17<(_$-$@ARjbI!Tvp7THdbM8&ZFD$cZYnelZ zzTP0qvWk-|D-bVW6}*8p@DYZfyN6{}#Yn7xtifu1z3#gcMi4ED_9M0 zq5^%6n#bMC=@;&$pw!2s9_WCIEX6q7v`!$q}Dg$RxfuBbObPKEF z1JhnH*%_xUDo}4c1x3^r%U~)hb$!tv2cgbDCTapND$r%9v#<%3k!=`&yHL*`M)i9K zHO^VAi_KIs6>0_DQCl(GH~}^BbX4H8Q5l(s%D`Gw z|JPAla2S>8v#0>BVio4MN+@Wcho}dhq9QJv>R1J}qA=8+M_^@)MNQlW%VIm!a~(~4 z3Ra@t2erTqQ~=Xa3tTFh-&#XK5pBfMRH6>cF4O+DX)i_va2gfR$EbkMqn^KpTIqKf zj?YjNh4gj;sE3uQH%Fa~E*PnlrBYDGQK%JUp$433oNu2DsOnXZEwm`PJItMTQ6Zc{ z-Twr2JTII21JsnyF#!GgI7_REYL7uZ-x{^F&ZsX>PmID*roN&NJEf3z(4dg_VHG@K zI(&-C$xYPSZW|vP|3LNk?dxnpEmS}aQ4_Z@cElj+-BI_4paPxHmz`2!HVq17Icite zqbA&gFW@0m4lkotR)X5pyQqmCU<5uxH-@D-{bG#GP~&w#J(q;MCsvA=f{xQT)Nz}E z8eooTUy52`0V=>fru`slpkj0XG%CfHFcNR00uAivoSxdKElxlMl4SIzQP9eUp;D8D z3TPGvVm^9si@E+UCj169;4i3vtp3h@9}J@Ek9wcNQRCM)?H*)auhofy4q0#1 zz=Kc&jXiNsq0)@wY4ez2dR%W16uZGHO3~J>qQ1?4yFb=?4`ch1$ zpoo_n3ylX+1Drzb{b#6De~t>I1a){Hq5>{E$gv`73jzj6e^H-RR6Z<)xe3S zLlV}ao{BXv3pLRK)Yhy=4ZH<4&>N_Mj$$)>4;AozJ(#gLD zXh?%nn1C9fD{A62)C$I!_9>_>nuo1$A8Mc*sDN&x-kxWuiF^h-a2eLZop=>bU<_^==6vB!qR!3_sD<1? z1^zomW884(*Iz#`g+v;%Ov8R`Nc|+n;!oHPLq<4(48-cx=U_{G1z*H-n1JpK%c_U% zP+K(umEp;zo`X7s3sD*HZlItQZO3pth8p+_)K&zIH198lQLk@IL}g$&YDKfLG44bK z{!i4(e@C6AN~4@iN211!!8pDDEhs3WQCJ(NV^ds*+KMyS9&ck!j2-Qyx)bV`Nj8?n z0#s(UU^*Ve$>=+Vzpro>DxhDmIabKztE>0F9R;OmHxiMx4}0Mi)SgC+byAg#dJEEx z8K~1e4wdSuMlUM0YtRQ@#j3d7)Q_M7K8B_5e=!B6_A2T$KS6yD{y0rI`w@~Da}AloQ;}zHtKmVmceDHg|0O1ub@{Qw@}cBWg9Axy{G}tq6WBxdTqW! z^}CA|@Cji#)Y z3NN8DaLe5P6}6{<6Py*-M+Fvb^qBTm#`ea}sK9zmuus(pD*YR1Bu)C%Oh6sS>Bgm~ z5H_Qdw+pq~dr`T22NiNLYU)dET>;A>bWLak8C1Ym%>5G6{uDj5`%ZK=qYY}l9us*7^o9Up)z$G^@4qZ8t(#XoG(xrD>3a)aTs;4E89uM z2vmeGp}vW;P%B!G%FF@OK>t7ma0zv;zd-f>5%mcx$9G4mu7`TQFLuCejKBk^{ugkq zzJa$XsN>uz&Hx*+5%nTe#}d^2-!K7#r#k(TP#^8FSP7S+0xLj$#J8eSeGvojYt#bn zpfdId%j+9xz2tPPfZB>6)B{n*=BU(nLLI(jR6rRRigQu@HyL+hF!dr-Kz~O~d;zs3 zSCKystP-rG`P)u&R@MUpsn0`g#TqPK5$X(VMSt9m+RFpx{%KTdKSJ&OU95~hqn>l+ zI1`sgEu=DPo)GjZb#W9la2r%=x}hdcLj{s<%rNcaPy=V9KCaVDJr^~>98^XYoA&jn zjBLWjco3`LH#y|LDuw$rXrgk{oygp%4q>Q0Y=lZ(YgB+Qq9#Z&^`XY`sKBP9wq`c+ z*NIhtI>Zl9fdu9{^Tp(ne`UZ!g97P*>X3#y%@a|nTxRZXMos)z)ZsjaL3qjdZ`8!k zF&b;kaK`I^)u<0d{rZ}O3TTPf6n3EoI*r_8245ViO3p;CDgm4OdY4_-k{a0AuvE~?){ zRKQPBf%wjH`URo-)kgKJj|wQtY4=)`WSqI5iyCka zY5@yS6RyTZXq$TQZ0Emg!mu=RsNca>R|=Z&AZnr`*cDHp1}-u_6J_h~u{?DVJ6)i^{!cC~xYCmcvZ=zCv1Viv7 zYJzL1J^T)}qKBx3{E8aSn&&)U3DvI}YMcnHiykcfH&7o6HE9@(3LpnHP(EtlRj4zt z0kwi%sI53=JcH_g9u@dyR7O5WW#Bfdf7v|eEvSS#%E)Zg)_75YEk#Yd5%mS!f_m=HrhOkO0|!tGJdO(Bd>;AN3QK5^KcWJ9fTgKK z1!leMvvk;^DR;Ddm@Hof7JN7r~vX%fv@vY(BasDO4)u?$70k9 zK12<8(fB25;+v>`cZ`ovss0VszZwfuKw)Nq(O8?h$JCQi0eJgU&|%3$tu)8nSd1EA z18Tx;s1MN|jKUM9eiJp}Z>ROn269hTGk-<^UcO2!E6hx(Ar zLUmkhT#Fj;Rn!^Sg?elDq7K(7)Zx2;dj7I$zm8hqeN=$1g-(AzEXVv-2nBVhgGyOr zjKr>}04AXh(@fMJuR;Z~%lIa0W$&Oea|RXAMN~#h(1VZ6{m4bmf}5gO6SkqC0sEj< zHpFzuK&5;fmccow3Gz()O4P)!p$_AIR3?j1;~YaR?0wWi&ZEx4HB-O7i2Uou9ncNVOorwcb^}09-BT)ma#}>F5m8s8AD}0Rc*kFnCTt8Ic>F9$)F$G8A4t#3~`Bx!r zsk8TwvAl~d$#?!eTz47ggZsU(Hx{5K`W~BL@N(ym%^s)#7oq~YhpE_Lg_EHfSdsc7 z^u<-E%xv^h&?$Z$%i-UQ$5DHD68-QzY6aI&TW}rK{~l@!ADR2^m6kPj}G3_s-wrC}`;=fR=cPVI~2iO~*qZ@m!b|xB#{?vyVvrrkEiRzb+Wzj}<&SGa6 z)%kyvA@=IX2;VF<^OI}88yV$VWnYgB4IDw+J=!9<2*a9c2Q-MN-pBN$!HVYKbfMng z?$Tgx*mz2xsvp;S%1`k;*JiFx_E!xC1}rtt9;IcO-7zXOa1t#+jN-=?$u-N)jtUK# zO=~JO{pgE4kNQmCzPWyDqsazGQ>*qDfBT*kR-iw`$V*@5od_u*AL+z`L zy9JCYy~&?mJk-*T_k_E;+R2{an9j7?52Qb~f?y2e;V?XvZb=h`ILes#ew6@?HMUPrsBkk;j2v-|>T|!k?PkT4z zX+<9;{2uH#Epu$z>% diff --git a/openatlas/translations/en/LC_MESSAGES/messages.po b/openatlas/translations/en/LC_MESSAGES/messages.po index 99cc87068..06c505741 100644 --- a/openatlas/translations/en/LC_MESSAGES/messages.po +++ b/openatlas/translations/en/LC_MESSAGES/messages.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-09-09 15:42+0200\n" -"PO-Revision-Date: 2024-09-09 15:44+0200\n" +"POT-Creation-Date: 2024-10-28 15:56+0100\n" +"PO-Revision-Date: 2024-10-28 16:01+0100\n" "Last-Translator: Alexander Watzinger \n" "Language-Team: en \n" "Language: en\n" @@ -57,7 +57,7 @@ msgstr "Delete %(name)s?" #: openatlas/templates/type/index.html:78 #: openatlas/templates/util/translations.html:6 openatlas/views/admin.py:540 #: openatlas/views/admin.py:560 openatlas/views/annotation.py:41 -#: openatlas/views/export.py:56 openatlas/views/imports.py:179 +#: openatlas/views/export.py:56 openatlas/views/imports.py:178 #: openatlas/views/note.py:39 openatlas/views/tools.py:95 #: openatlas/views/tools.py:97 openatlas/views/type.py:136 #: openatlas/views/user.py:79 openatlas/views/user.py:165 @@ -73,7 +73,7 @@ msgstr "delete" #: openatlas/views/admin.py:124 openatlas/views/admin.py:435 #: openatlas/views/annotation.py:50 openatlas/views/file.py:39 #: openatlas/views/file.py:50 openatlas/views/hierarchy.py:112 -#: openatlas/views/imports.py:176 openatlas/views/imports.py:240 +#: openatlas/views/imports.py:175 openatlas/views/imports.py:239 #: openatlas/views/link.py:84 openatlas/views/link.py:148 #: openatlas/views/note.py:38 openatlas/views/profile.py:78 #: openatlas/views/profile.py:82 openatlas/views/profile.py:85 @@ -211,7 +211,7 @@ msgstr "ID for imports" #: openatlas/display/base_display.py:552 openatlas/display/tab.py:95 #: openatlas/forms/add_fields.py:236 openatlas/forms/base_manager.py:141 #: openatlas/forms/field.py:217 openatlas/forms/manager.py:530 -#: openatlas/views/arche.py:36 openatlas/views/imports.py:67 +#: openatlas/views/arche.py:36 openatlas/views/imports.py:66 #: openatlas/views/index.py:71 openatlas/views/profile.py:61 #: openatlas/views/vocabs.py:82 msgid "name" @@ -455,7 +455,7 @@ msgstr "view all IIIF images" #: openatlas/display/tab.py:262 openatlas/views/index.py:64 #: openatlas/views/note.py:50 openatlas/views/note.py:56 -#: openatlas/views/note.py:91 +#: openatlas/views/note.py:92 msgid "note" msgstr "note" @@ -630,8 +630,8 @@ msgstr "comment" #: openatlas/forms/add_fields.py:244 openatlas/forms/base_manager.py:133 #: openatlas/forms/field.py:232 openatlas/templates/model/cidoc_class_view.html:8 #: openatlas/templates/model/property_view.html:8 -#: openatlas/templates/type/index.html:136 openatlas/views/imports.py:70 -#: openatlas/views/imports.py:130 openatlas/views/index.py:138 +#: openatlas/templates/type/index.html:136 openatlas/views/imports.py:69 +#: openatlas/views/imports.py:129 openatlas/views/index.py:138 #: openatlas/views/note.py:22 msgid "description" msgstr "description" @@ -642,7 +642,7 @@ msgstr "description" #: openatlas/templates/forms/tree_multi_select.html:111 #: openatlas/templates/forms/tree_multi_select.html:132 #: openatlas/templates/forms/tree_select.html:96 -#: openatlas/templates/forms/tree_select.html:123 openatlas/views/imports.py:71 +#: openatlas/templates/forms/tree_select.html:123 openatlas/views/imports.py:70 #: openatlas/views/user.py:77 msgid "insert" msgstr "insert" @@ -655,7 +655,7 @@ msgstr "insert" #: openatlas/forms/setting.py:143 openatlas/forms/setting.py:163 #: openatlas/templates/util/translations.html:4 openatlas/views/admin.py:195 #: openatlas/views/link.py:137 openatlas/views/note.py:23 -#: openatlas/views/note.py:106 openatlas/views/overlay.py:28 +#: openatlas/views/note.py:107 openatlas/views/overlay.py:28 #: openatlas/views/profile.py:30 openatlas/views/tools.py:160 #: openatlas/views/tools.py:239 openatlas/views/user.py:44 msgid "save" @@ -756,7 +756,7 @@ msgstr "stratigraphic unit" #: openatlas/views/annotation.py:88 openatlas/views/entity_index.py:30 #: openatlas/views/file.py:42 openatlas/views/file.py:60 #: openatlas/views/file.py:62 openatlas/views/file.py:230 -#: openatlas/views/imports.py:252 +#: openatlas/views/imports.py:251 msgid "file" msgstr "file" @@ -1089,11 +1089,11 @@ msgstr "on" msgid "off" msgstr "off" -#: openatlas/forms/validation.py:21 openatlas/views/imports.py:260 +#: openatlas/forms/validation.py:21 openatlas/views/imports.py:259 msgid "file type not allowed" msgstr "file type not allowed" -#: openatlas/forms/validation.py:28 openatlas/views/imports.py:78 +#: openatlas/forms/validation.py:28 openatlas/views/imports.py:77 msgid "error name exists" msgstr "the name is already in use" @@ -1281,19 +1281,19 @@ msgstr "allowed extensions" msgid "example files" msgstr "example files" -#: openatlas/templates/import_data.html:22 +#: openatlas/templates/import_data.html:23 msgid "error" msgstr "error" -#: openatlas/templates/import_data.html:25 +#: openatlas/templates/import_data.html:26 msgid "warning" msgstr "warning" -#: openatlas/templates/import_data.html:30 +#: openatlas/templates/import_data.html:31 msgid "imported" msgstr "imported" -#: openatlas/templates/import_data.html:32 +#: openatlas/templates/import_data.html:33 msgid "preview" msgstr "preview" @@ -1322,10 +1322,10 @@ msgstr "profile" #: openatlas/views/admin.py:617 openatlas/views/admin.py:619 #: openatlas/views/admin.py:725 openatlas/views/admin.py:727 #: openatlas/views/admin.py:796 openatlas/views/arche.py:30 -#: openatlas/views/export.py:76 openatlas/views/imports.py:145 -#: openatlas/views/imports.py:162 openatlas/views/imports.py:215 -#: openatlas/views/imports.py:237 openatlas/views/imports.py:294 -#: openatlas/views/imports.py:320 openatlas/views/sql.py:29 +#: openatlas/views/export.py:76 openatlas/views/imports.py:144 +#: openatlas/views/imports.py:161 openatlas/views/imports.py:214 +#: openatlas/views/imports.py:236 openatlas/views/imports.py:293 +#: openatlas/views/imports.py:319 openatlas/views/sql.py:29 #: openatlas/views/sql.py:60 openatlas/views/user.py:128 #: openatlas/views/user.py:180 openatlas/views/user.py:220 #: openatlas/views/user.py:256 openatlas/views/user.py:315 @@ -1446,13 +1446,13 @@ msgid "data transfer" msgstr "data transfer" #: openatlas/templates/admin/data.html:13 -#: openatlas/templates/util/translations.html:8 openatlas/views/imports.py:143 -#: openatlas/views/imports.py:146 openatlas/views/imports.py:160 -#: openatlas/views/imports.py:163 openatlas/views/imports.py:213 -#: openatlas/views/imports.py:216 openatlas/views/imports.py:235 -#: openatlas/views/imports.py:238 openatlas/views/imports.py:255 -#: openatlas/views/imports.py:292 openatlas/views/imports.py:295 -#: openatlas/views/imports.py:321 openatlas/views/vocabs.py:86 +#: openatlas/templates/util/translations.html:8 openatlas/views/imports.py:142 +#: openatlas/views/imports.py:145 openatlas/views/imports.py:159 +#: openatlas/views/imports.py:162 openatlas/views/imports.py:212 +#: openatlas/views/imports.py:215 openatlas/views/imports.py:234 +#: openatlas/views/imports.py:237 openatlas/views/imports.py:254 +#: openatlas/views/imports.py:291 openatlas/views/imports.py:294 +#: openatlas/views/imports.py:320 openatlas/views/vocabs.py:86 #: openatlas/views/vocabs.py:87 msgid "import" msgstr "import" @@ -1947,7 +1947,7 @@ msgstr "IIIF" #: openatlas/views/admin.py:349 openatlas/views/arche.py:66 #: openatlas/views/entity.py:236 openatlas/views/entity.py:271 #: openatlas/views/hierarchy.py:40 openatlas/views/hierarchy.py:84 -#: openatlas/views/imports.py:311 openatlas/views/link.py:73 +#: openatlas/views/imports.py:310 openatlas/views/link.py:73 #: openatlas/views/link.py:103 openatlas/views/profile.py:123 #: openatlas/views/sql.py:52 openatlas/views/tools.py:135 #: openatlas/views/tools.py:174 openatlas/views/vocabs.py:182 @@ -2219,80 +2219,76 @@ msgid "invalid OpenAtlas class" msgstr "invalid OpenAtlas class" #: openatlas/views/imports.py:53 -msgid "invalid references" -msgstr "invalid references" - -#: openatlas/views/imports.py:54 msgid "invalid reference id" msgstr "invalid reference id" -#: openatlas/views/imports.py:55 +#: openatlas/views/imports.py:54 msgid "empty names" msgstr "empty names" -#: openatlas/views/imports.py:56 +#: openatlas/views/imports.py:55 msgid "empty ids" msgstr "empty ids" -#: openatlas/views/imports.py:57 openatlas/views/imports.py:119 +#: openatlas/views/imports.py:56 openatlas/views/imports.py:118 msgid "missing name column" msgstr "missing name column" -#: openatlas/views/imports.py:58 +#: openatlas/views/imports.py:57 msgid "ids already in database" msgstr "IDs already in database" -#: openatlas/views/imports.py:59 +#: openatlas/views/imports.py:58 msgid "double ids in import" msgstr "double IDs in import" -#: openatlas/views/imports.py:60 +#: openatlas/views/imports.py:59 msgid "multiple parent ids" msgstr "multiple parent IDs" -#: openatlas/views/imports.py:61 +#: openatlas/views/imports.py:60 msgid "invalid openatlas parent id" msgstr "invalid OpenAtlas parent ID" -#: openatlas/views/imports.py:130 openatlas/views/imports.py:138 -#: openatlas/views/imports.py:164 +#: openatlas/views/imports.py:129 openatlas/views/imports.py:137 +#: openatlas/views/imports.py:163 msgid "project" msgstr "project" -#: openatlas/views/imports.py:130 openatlas/views/model.py:62 +#: openatlas/views/imports.py:129 openatlas/views/model.py:62 msgid "entities" msgstr "entities" -#: openatlas/views/imports.py:155 +#: openatlas/views/imports.py:154 msgid "project inserted" msgstr "project inserted" -#: openatlas/views/imports.py:183 +#: openatlas/views/imports.py:182 #, python-format msgid "delete %(name)s?" msgstr "delete %(name)s?" -#: openatlas/views/imports.py:185 +#: openatlas/views/imports.py:184 msgid "new import" msgstr "new import" -#: openatlas/views/imports.py:230 +#: openatlas/views/imports.py:229 msgid "project updated" msgstr "project updated" -#: openatlas/views/imports.py:247 +#: openatlas/views/imports.py:246 msgid "project deleted" msgstr "project deleted" -#: openatlas/views/imports.py:253 +#: openatlas/views/imports.py:252 msgid "preview only" msgstr "preview only" -#: openatlas/views/imports.py:254 +#: openatlas/views/imports.py:253 msgid "check for duplicates" msgstr "check for duplicates" -#: openatlas/views/imports.py:286 +#: openatlas/views/imports.py:285 msgid "error at import" msgstr "error at import" @@ -2503,7 +2499,7 @@ msgstr "classic" msgid "set private" msgstr "set private" -#: openatlas/views/note.py:66 openatlas/views/note.py:104 +#: openatlas/views/note.py:66 openatlas/views/note.py:105 msgid "note updated" msgstr "note updated" @@ -2511,11 +2507,17 @@ msgstr "note updated" msgid "note added" msgstr "note added" -#: openatlas/views/note.py:116 +#: openatlas/views/note.py:85 +msgid "notes info" +msgstr "" +"Notes are an additional tool for your workflow. They are not part of the data " +"model and won’t show in presentation sites or be archived." + +#: openatlas/views/note.py:117 msgid "edit note" msgstr "edit note" -#: openatlas/views/note.py:126 +#: openatlas/views/note.py:127 msgid "note deleted" msgstr "note deleted" @@ -2736,3 +2738,6 @@ msgstr "You are about to import following hierarchy" #~ msgid "actor" #~ msgstr "actor" + +#~ msgid "invalid references" +#~ msgstr "invalid references" diff --git a/openatlas/translations/es/LC_MESSAGES/messages.po b/openatlas/translations/es/LC_MESSAGES/messages.po index c6d31272e..69334e5c1 100644 --- a/openatlas/translations/es/LC_MESSAGES/messages.po +++ b/openatlas/translations/es/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-09-09 15:42+0200\n" +"POT-Creation-Date: 2024-10-28 15:56+0100\n" "PO-Revision-Date: 2024-08-13 16:42+0200\n" "Last-Translator: Enric Rodellas \n" "Language: es\n" @@ -57,7 +57,7 @@ msgstr "Suprimir %(name)s?" #: openatlas/templates/type/index.html:78 #: openatlas/templates/util/translations.html:6 openatlas/views/admin.py:540 #: openatlas/views/admin.py:560 openatlas/views/annotation.py:41 -#: openatlas/views/export.py:56 openatlas/views/imports.py:179 +#: openatlas/views/export.py:56 openatlas/views/imports.py:178 #: openatlas/views/note.py:39 openatlas/views/tools.py:95 #: openatlas/views/tools.py:97 openatlas/views/type.py:136 #: openatlas/views/user.py:79 openatlas/views/user.py:165 @@ -73,7 +73,7 @@ msgstr "suprimir" #: openatlas/views/admin.py:124 openatlas/views/admin.py:435 #: openatlas/views/annotation.py:50 openatlas/views/file.py:39 #: openatlas/views/file.py:50 openatlas/views/hierarchy.py:112 -#: openatlas/views/imports.py:176 openatlas/views/imports.py:240 +#: openatlas/views/imports.py:175 openatlas/views/imports.py:239 #: openatlas/views/link.py:84 openatlas/views/link.py:148 #: openatlas/views/note.py:38 openatlas/views/profile.py:78 #: openatlas/views/profile.py:82 openatlas/views/profile.py:85 @@ -212,7 +212,7 @@ msgstr "ID para importaciones" #: openatlas/display/base_display.py:552 openatlas/display/tab.py:95 #: openatlas/forms/add_fields.py:236 openatlas/forms/base_manager.py:141 #: openatlas/forms/field.py:217 openatlas/forms/manager.py:530 -#: openatlas/views/arche.py:36 openatlas/views/imports.py:67 +#: openatlas/views/arche.py:36 openatlas/views/imports.py:66 #: openatlas/views/index.py:71 openatlas/views/profile.py:61 #: openatlas/views/vocabs.py:82 msgid "name" @@ -459,7 +459,7 @@ msgstr "ver todas las imágenes IIIF" #: openatlas/display/tab.py:262 openatlas/views/index.py:64 #: openatlas/views/note.py:50 openatlas/views/note.py:56 -#: openatlas/views/note.py:91 +#: openatlas/views/note.py:92 msgid "note" msgstr "nota" @@ -635,8 +635,8 @@ msgstr "comentario" #: openatlas/forms/field.py:232 #: openatlas/templates/model/cidoc_class_view.html:8 #: openatlas/templates/model/property_view.html:8 -#: openatlas/templates/type/index.html:136 openatlas/views/imports.py:70 -#: openatlas/views/imports.py:130 openatlas/views/index.py:138 +#: openatlas/templates/type/index.html:136 openatlas/views/imports.py:69 +#: openatlas/views/imports.py:129 openatlas/views/index.py:138 #: openatlas/views/note.py:22 msgid "description" msgstr "descripción" @@ -647,7 +647,7 @@ msgstr "descripción" #: openatlas/templates/forms/tree_multi_select.html:111 #: openatlas/templates/forms/tree_multi_select.html:132 #: openatlas/templates/forms/tree_select.html:96 -#: openatlas/templates/forms/tree_select.html:123 openatlas/views/imports.py:71 +#: openatlas/templates/forms/tree_select.html:123 openatlas/views/imports.py:70 #: openatlas/views/user.py:77 msgid "insert" msgstr "insertar" @@ -660,7 +660,7 @@ msgstr "insertar" #: openatlas/forms/setting.py:143 openatlas/forms/setting.py:163 #: openatlas/templates/util/translations.html:4 openatlas/views/admin.py:195 #: openatlas/views/link.py:137 openatlas/views/note.py:23 -#: openatlas/views/note.py:106 openatlas/views/overlay.py:28 +#: openatlas/views/note.py:107 openatlas/views/overlay.py:28 #: openatlas/views/profile.py:30 openatlas/views/tools.py:160 #: openatlas/views/tools.py:239 openatlas/views/user.py:44 msgid "save" @@ -761,7 +761,7 @@ msgstr "unidad estratigráfica" #: openatlas/views/annotation.py:88 openatlas/views/entity_index.py:30 #: openatlas/views/file.py:42 openatlas/views/file.py:60 #: openatlas/views/file.py:62 openatlas/views/file.py:230 -#: openatlas/views/imports.py:252 +#: openatlas/views/imports.py:251 msgid "file" msgstr "fichero" @@ -1098,11 +1098,11 @@ msgstr "on" msgid "off" msgstr "off" -#: openatlas/forms/validation.py:21 openatlas/views/imports.py:260 +#: openatlas/forms/validation.py:21 openatlas/views/imports.py:259 msgid "file type not allowed" msgstr "tipo de fichero no permitido" -#: openatlas/forms/validation.py:28 openatlas/views/imports.py:78 +#: openatlas/forms/validation.py:28 openatlas/views/imports.py:77 msgid "error name exists" msgstr "el nombre ya existe" @@ -1291,19 +1291,19 @@ msgstr "extensiones permitidas" msgid "example files" msgstr "archivos de ejemplo" -#: openatlas/templates/import_data.html:22 +#: openatlas/templates/import_data.html:23 msgid "error" msgstr "error" -#: openatlas/templates/import_data.html:25 +#: openatlas/templates/import_data.html:26 msgid "warning" msgstr "aviso" -#: openatlas/templates/import_data.html:30 +#: openatlas/templates/import_data.html:31 msgid "imported" msgstr "importado" -#: openatlas/templates/import_data.html:32 +#: openatlas/templates/import_data.html:33 msgid "preview" msgstr "previsualiza" @@ -1332,10 +1332,10 @@ msgstr "cuenta" #: openatlas/views/admin.py:617 openatlas/views/admin.py:619 #: openatlas/views/admin.py:725 openatlas/views/admin.py:727 #: openatlas/views/admin.py:796 openatlas/views/arche.py:30 -#: openatlas/views/export.py:76 openatlas/views/imports.py:145 -#: openatlas/views/imports.py:162 openatlas/views/imports.py:215 -#: openatlas/views/imports.py:237 openatlas/views/imports.py:294 -#: openatlas/views/imports.py:320 openatlas/views/sql.py:29 +#: openatlas/views/export.py:76 openatlas/views/imports.py:144 +#: openatlas/views/imports.py:161 openatlas/views/imports.py:214 +#: openatlas/views/imports.py:236 openatlas/views/imports.py:293 +#: openatlas/views/imports.py:319 openatlas/views/sql.py:29 #: openatlas/views/sql.py:60 openatlas/views/user.py:128 #: openatlas/views/user.py:180 openatlas/views/user.py:220 #: openatlas/views/user.py:256 openatlas/views/user.py:315 @@ -1456,13 +1456,13 @@ msgid "data transfer" msgstr "transferencia de datos" #: openatlas/templates/admin/data.html:13 -#: openatlas/templates/util/translations.html:8 openatlas/views/imports.py:143 -#: openatlas/views/imports.py:146 openatlas/views/imports.py:160 -#: openatlas/views/imports.py:163 openatlas/views/imports.py:213 -#: openatlas/views/imports.py:216 openatlas/views/imports.py:235 -#: openatlas/views/imports.py:238 openatlas/views/imports.py:255 -#: openatlas/views/imports.py:292 openatlas/views/imports.py:295 -#: openatlas/views/imports.py:321 openatlas/views/vocabs.py:86 +#: openatlas/templates/util/translations.html:8 openatlas/views/imports.py:142 +#: openatlas/views/imports.py:145 openatlas/views/imports.py:159 +#: openatlas/views/imports.py:162 openatlas/views/imports.py:212 +#: openatlas/views/imports.py:215 openatlas/views/imports.py:234 +#: openatlas/views/imports.py:237 openatlas/views/imports.py:254 +#: openatlas/views/imports.py:291 openatlas/views/imports.py:294 +#: openatlas/views/imports.py:320 openatlas/views/vocabs.py:86 #: openatlas/views/vocabs.py:87 msgid "import" msgstr "importar" @@ -1962,7 +1962,7 @@ msgstr "IIIF" #: openatlas/views/admin.py:349 openatlas/views/arche.py:66 #: openatlas/views/entity.py:236 openatlas/views/entity.py:271 #: openatlas/views/hierarchy.py:40 openatlas/views/hierarchy.py:84 -#: openatlas/views/imports.py:311 openatlas/views/link.py:73 +#: openatlas/views/imports.py:310 openatlas/views/link.py:73 #: openatlas/views/link.py:103 openatlas/views/profile.py:123 #: openatlas/views/sql.py:52 openatlas/views/tools.py:135 #: openatlas/views/tools.py:174 openatlas/views/vocabs.py:182 @@ -2235,80 +2235,76 @@ msgid "invalid OpenAtlas class" msgstr "clase OpenAtlas inválida" #: openatlas/views/imports.py:53 -msgid "invalid references" -msgstr "referencias inválidas" - -#: openatlas/views/imports.py:54 msgid "invalid reference id" msgstr "id de referencia no válida" -#: openatlas/views/imports.py:55 +#: openatlas/views/imports.py:54 msgid "empty names" msgstr "nombres vacíos" -#: openatlas/views/imports.py:56 +#: openatlas/views/imports.py:55 msgid "empty ids" msgstr "ids vacías" -#: openatlas/views/imports.py:57 openatlas/views/imports.py:119 +#: openatlas/views/imports.py:56 openatlas/views/imports.py:118 msgid "missing name column" msgstr "falta el nombre de la columna" -#: openatlas/views/imports.py:58 +#: openatlas/views/imports.py:57 msgid "ids already in database" msgstr "ids que ya existen en la base de datos" -#: openatlas/views/imports.py:59 +#: openatlas/views/imports.py:58 msgid "double ids in import" msgstr "ids dobles en la importación" -#: openatlas/views/imports.py:60 +#: openatlas/views/imports.py:59 msgid "multiple parent ids" msgstr "ids de padres múltiples" -#: openatlas/views/imports.py:61 +#: openatlas/views/imports.py:60 msgid "invalid openatlas parent id" msgstr "Id. de padre de OpenAtlas no válida" -#: openatlas/views/imports.py:130 openatlas/views/imports.py:138 -#: openatlas/views/imports.py:164 +#: openatlas/views/imports.py:129 openatlas/views/imports.py:137 +#: openatlas/views/imports.py:163 msgid "project" msgstr "proyecto" -#: openatlas/views/imports.py:130 openatlas/views/model.py:62 +#: openatlas/views/imports.py:129 openatlas/views/model.py:62 msgid "entities" msgstr "entidades" -#: openatlas/views/imports.py:155 +#: openatlas/views/imports.py:154 msgid "project inserted" msgstr "proyecto insertado" -#: openatlas/views/imports.py:183 +#: openatlas/views/imports.py:182 #, python-format msgid "delete %(name)s?" msgstr "elimina %(name)s?" -#: openatlas/views/imports.py:185 +#: openatlas/views/imports.py:184 msgid "new import" msgstr "nueva importación" -#: openatlas/views/imports.py:230 +#: openatlas/views/imports.py:229 msgid "project updated" msgstr "proyecto actualizado" -#: openatlas/views/imports.py:247 +#: openatlas/views/imports.py:246 msgid "project deleted" msgstr "proyecto eliminado" -#: openatlas/views/imports.py:253 +#: openatlas/views/imports.py:252 msgid "preview only" msgstr "solo vista previa" -#: openatlas/views/imports.py:254 +#: openatlas/views/imports.py:253 msgid "check for duplicates" msgstr "comprobar si hay duplicados" -#: openatlas/views/imports.py:286 +#: openatlas/views/imports.py:285 msgid "error at import" msgstr "error en la importación" @@ -2526,7 +2522,7 @@ msgstr "clásico" msgid "set private" msgstr "Establecer privado" -#: openatlas/views/note.py:66 openatlas/views/note.py:104 +#: openatlas/views/note.py:66 openatlas/views/note.py:105 msgid "note updated" msgstr "nota actualizada" @@ -2534,11 +2530,16 @@ msgstr "nota actualizada" msgid "note added" msgstr "nota agregada" -#: openatlas/views/note.py:116 +#: openatlas/views/note.py:85 +#, fuzzy +msgid "notes info" +msgstr "notas" + +#: openatlas/views/note.py:117 msgid "edit note" msgstr "edita nota" -#: openatlas/views/note.py:126 +#: openatlas/views/note.py:127 msgid "note deleted" msgstr "nota eliminada" @@ -2761,3 +2762,6 @@ msgstr "Estás a punto de importar la siguiente jerarquía" #~ msgid "actor" #~ msgstr "actor" +#~ msgid "invalid references" +#~ msgstr "referencias inválidas" + diff --git a/openatlas/translations/fr/LC_MESSAGES/messages.po b/openatlas/translations/fr/LC_MESSAGES/messages.po index 8a1040200..38baf8dd6 100644 --- a/openatlas/translations/fr/LC_MESSAGES/messages.po +++ b/openatlas/translations/fr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-09-09 15:42+0200\n" +"POT-Creation-Date: 2024-10-28 15:56+0100\n" "PO-Revision-Date: 2023-07-15 13:06+0200\n" "Last-Translator: Clément Besnier \n" "Language: fr\n" @@ -57,7 +57,7 @@ msgstr "Supprimer %(name)s ?" #: openatlas/templates/type/index.html:78 #: openatlas/templates/util/translations.html:6 openatlas/views/admin.py:540 #: openatlas/views/admin.py:560 openatlas/views/annotation.py:41 -#: openatlas/views/export.py:56 openatlas/views/imports.py:179 +#: openatlas/views/export.py:56 openatlas/views/imports.py:178 #: openatlas/views/note.py:39 openatlas/views/tools.py:95 #: openatlas/views/tools.py:97 openatlas/views/type.py:136 #: openatlas/views/user.py:79 openatlas/views/user.py:165 @@ -73,7 +73,7 @@ msgstr "supprimer" #: openatlas/views/admin.py:124 openatlas/views/admin.py:435 #: openatlas/views/annotation.py:50 openatlas/views/file.py:39 #: openatlas/views/file.py:50 openatlas/views/hierarchy.py:112 -#: openatlas/views/imports.py:176 openatlas/views/imports.py:240 +#: openatlas/views/imports.py:175 openatlas/views/imports.py:239 #: openatlas/views/link.py:84 openatlas/views/link.py:148 #: openatlas/views/note.py:38 openatlas/views/profile.py:78 #: openatlas/views/profile.py:82 openatlas/views/profile.py:85 @@ -216,7 +216,7 @@ msgstr "ID pour les imports" #: openatlas/display/base_display.py:552 openatlas/display/tab.py:95 #: openatlas/forms/add_fields.py:236 openatlas/forms/base_manager.py:141 #: openatlas/forms/field.py:217 openatlas/forms/manager.py:530 -#: openatlas/views/arche.py:36 openatlas/views/imports.py:67 +#: openatlas/views/arche.py:36 openatlas/views/imports.py:66 #: openatlas/views/index.py:71 openatlas/views/profile.py:61 #: openatlas/views/vocabs.py:82 msgid "name" @@ -467,7 +467,7 @@ msgstr "voir tous les images IIIF" #: openatlas/display/tab.py:262 openatlas/views/index.py:64 #: openatlas/views/note.py:50 openatlas/views/note.py:56 -#: openatlas/views/note.py:91 +#: openatlas/views/note.py:92 msgid "note" msgstr "note" @@ -645,8 +645,8 @@ msgstr "commentaire" #: openatlas/forms/field.py:232 #: openatlas/templates/model/cidoc_class_view.html:8 #: openatlas/templates/model/property_view.html:8 -#: openatlas/templates/type/index.html:136 openatlas/views/imports.py:70 -#: openatlas/views/imports.py:130 openatlas/views/index.py:138 +#: openatlas/templates/type/index.html:136 openatlas/views/imports.py:69 +#: openatlas/views/imports.py:129 openatlas/views/index.py:138 #: openatlas/views/note.py:22 msgid "description" msgstr "description" @@ -657,7 +657,7 @@ msgstr "description" #: openatlas/templates/forms/tree_multi_select.html:111 #: openatlas/templates/forms/tree_multi_select.html:132 #: openatlas/templates/forms/tree_select.html:96 -#: openatlas/templates/forms/tree_select.html:123 openatlas/views/imports.py:71 +#: openatlas/templates/forms/tree_select.html:123 openatlas/views/imports.py:70 #: openatlas/views/user.py:77 msgid "insert" msgstr "insérer" @@ -670,7 +670,7 @@ msgstr "insérer" #: openatlas/forms/setting.py:143 openatlas/forms/setting.py:163 #: openatlas/templates/util/translations.html:4 openatlas/views/admin.py:195 #: openatlas/views/link.py:137 openatlas/views/note.py:23 -#: openatlas/views/note.py:106 openatlas/views/overlay.py:28 +#: openatlas/views/note.py:107 openatlas/views/overlay.py:28 #: openatlas/views/profile.py:30 openatlas/views/tools.py:160 #: openatlas/views/tools.py:239 openatlas/views/user.py:44 msgid "save" @@ -773,7 +773,7 @@ msgstr "unité stratigraphique" #: openatlas/views/annotation.py:88 openatlas/views/entity_index.py:30 #: openatlas/views/file.py:42 openatlas/views/file.py:60 #: openatlas/views/file.py:62 openatlas/views/file.py:230 -#: openatlas/views/imports.py:252 +#: openatlas/views/imports.py:251 msgid "file" msgstr "fichier" @@ -1114,11 +1114,11 @@ msgstr "activé" msgid "off" msgstr "désactivé" -#: openatlas/forms/validation.py:21 openatlas/views/imports.py:260 +#: openatlas/forms/validation.py:21 openatlas/views/imports.py:259 msgid "file type not allowed" msgstr "type du fichier non autorisé" -#: openatlas/forms/validation.py:28 openatlas/views/imports.py:78 +#: openatlas/forms/validation.py:28 openatlas/views/imports.py:77 msgid "error name exists" msgstr "erreur : le nom existe déjà" @@ -1319,19 +1319,19 @@ msgstr "extensions autorisées" msgid "example files" msgstr "fichiers exemples" -#: openatlas/templates/import_data.html:22 +#: openatlas/templates/import_data.html:23 msgid "error" msgstr "erreur" -#: openatlas/templates/import_data.html:25 +#: openatlas/templates/import_data.html:26 msgid "warning" msgstr "attention" -#: openatlas/templates/import_data.html:30 +#: openatlas/templates/import_data.html:31 msgid "imported" msgstr "importé" -#: openatlas/templates/import_data.html:32 +#: openatlas/templates/import_data.html:33 msgid "preview" msgstr "prévisualisation" @@ -1360,10 +1360,10 @@ msgstr "profil" #: openatlas/views/admin.py:617 openatlas/views/admin.py:619 #: openatlas/views/admin.py:725 openatlas/views/admin.py:727 #: openatlas/views/admin.py:796 openatlas/views/arche.py:30 -#: openatlas/views/export.py:76 openatlas/views/imports.py:145 -#: openatlas/views/imports.py:162 openatlas/views/imports.py:215 -#: openatlas/views/imports.py:237 openatlas/views/imports.py:294 -#: openatlas/views/imports.py:320 openatlas/views/sql.py:29 +#: openatlas/views/export.py:76 openatlas/views/imports.py:144 +#: openatlas/views/imports.py:161 openatlas/views/imports.py:214 +#: openatlas/views/imports.py:236 openatlas/views/imports.py:293 +#: openatlas/views/imports.py:319 openatlas/views/sql.py:29 #: openatlas/views/sql.py:60 openatlas/views/user.py:128 #: openatlas/views/user.py:180 openatlas/views/user.py:220 #: openatlas/views/user.py:256 openatlas/views/user.py:315 @@ -1482,13 +1482,13 @@ msgid "data transfer" msgstr "transfert de données" #: openatlas/templates/admin/data.html:13 -#: openatlas/templates/util/translations.html:8 openatlas/views/imports.py:143 -#: openatlas/views/imports.py:146 openatlas/views/imports.py:160 -#: openatlas/views/imports.py:163 openatlas/views/imports.py:213 -#: openatlas/views/imports.py:216 openatlas/views/imports.py:235 -#: openatlas/views/imports.py:238 openatlas/views/imports.py:255 -#: openatlas/views/imports.py:292 openatlas/views/imports.py:295 -#: openatlas/views/imports.py:321 openatlas/views/vocabs.py:86 +#: openatlas/templates/util/translations.html:8 openatlas/views/imports.py:142 +#: openatlas/views/imports.py:145 openatlas/views/imports.py:159 +#: openatlas/views/imports.py:162 openatlas/views/imports.py:212 +#: openatlas/views/imports.py:215 openatlas/views/imports.py:234 +#: openatlas/views/imports.py:237 openatlas/views/imports.py:254 +#: openatlas/views/imports.py:291 openatlas/views/imports.py:294 +#: openatlas/views/imports.py:320 openatlas/views/vocabs.py:86 #: openatlas/views/vocabs.py:87 msgid "import" msgstr "import" @@ -1992,7 +1992,7 @@ msgstr "IIIF" #: openatlas/views/admin.py:349 openatlas/views/arche.py:66 #: openatlas/views/entity.py:236 openatlas/views/entity.py:271 #: openatlas/views/hierarchy.py:40 openatlas/views/hierarchy.py:84 -#: openatlas/views/imports.py:311 openatlas/views/link.py:73 +#: openatlas/views/imports.py:310 openatlas/views/link.py:73 #: openatlas/views/link.py:103 openatlas/views/profile.py:123 #: openatlas/views/sql.py:52 openatlas/views/tools.py:135 #: openatlas/views/tools.py:174 openatlas/views/vocabs.py:182 @@ -2285,85 +2285,80 @@ msgstr "coordonnées invalides" #: openatlas/views/imports.py:53 #, fuzzy -msgid "invalid references" -msgstr "système de référence" - -#: openatlas/views/imports.py:54 -#, fuzzy msgid "invalid reference id" msgstr "système de référence" -#: openatlas/views/imports.py:55 +#: openatlas/views/imports.py:54 #, fuzzy msgid "empty names" msgstr "nom du site" -#: openatlas/views/imports.py:56 +#: openatlas/views/imports.py:55 #, fuzzy msgid "empty ids" msgstr "nom du site" -#: openatlas/views/imports.py:57 openatlas/views/imports.py:119 +#: openatlas/views/imports.py:56 openatlas/views/imports.py:118 msgid "missing name column" msgstr "colonne nom manquante" -#: openatlas/views/imports.py:58 +#: openatlas/views/imports.py:57 msgid "ids already in database" msgstr "les ids sont déjà dans la base de données" -#: openatlas/views/imports.py:59 +#: openatlas/views/imports.py:58 msgid "double ids in import" msgstr "il y a des doublons d'ids dans l'import" -#: openatlas/views/imports.py:60 +#: openatlas/views/imports.py:59 #, fuzzy msgid "multiple parent ids" msgstr "nombreuses entités liées" -#: openatlas/views/imports.py:61 +#: openatlas/views/imports.py:60 #, fuzzy msgid "invalid openatlas parent id" msgstr "coordonnées invalides" -#: openatlas/views/imports.py:130 openatlas/views/imports.py:138 -#: openatlas/views/imports.py:164 +#: openatlas/views/imports.py:129 openatlas/views/imports.py:137 +#: openatlas/views/imports.py:163 msgid "project" msgstr "projets" -#: openatlas/views/imports.py:130 openatlas/views/model.py:62 +#: openatlas/views/imports.py:129 openatlas/views/model.py:62 msgid "entities" msgstr "entités" -#: openatlas/views/imports.py:155 +#: openatlas/views/imports.py:154 msgid "project inserted" msgstr "projet inséré" -#: openatlas/views/imports.py:183 +#: openatlas/views/imports.py:182 #, python-format msgid "delete %(name)s?" msgstr "supprimer %(name)s ?" -#: openatlas/views/imports.py:185 +#: openatlas/views/imports.py:184 msgid "new import" msgstr "nouvel import" -#: openatlas/views/imports.py:230 +#: openatlas/views/imports.py:229 msgid "project updated" msgstr "projet mis à jour" -#: openatlas/views/imports.py:247 +#: openatlas/views/imports.py:246 msgid "project deleted" msgstr "projet supprimé" -#: openatlas/views/imports.py:253 +#: openatlas/views/imports.py:252 msgid "preview only" msgstr "seulement prévisualiser" -#: openatlas/views/imports.py:254 +#: openatlas/views/imports.py:253 msgid "check for duplicates" msgstr "vérifier les doublons" -#: openatlas/views/imports.py:286 +#: openatlas/views/imports.py:285 msgid "error at import" msgstr "erreur lors de l'import" @@ -2584,7 +2579,7 @@ msgstr "classique" msgid "set private" msgstr "rendre privé" -#: openatlas/views/note.py:66 openatlas/views/note.py:104 +#: openatlas/views/note.py:66 openatlas/views/note.py:105 msgid "note updated" msgstr "note mise à jour" @@ -2592,11 +2587,16 @@ msgstr "note mise à jour" msgid "note added" msgstr "note ajoutée" -#: openatlas/views/note.py:116 +#: openatlas/views/note.py:85 +#, fuzzy +msgid "notes info" +msgstr "note" + +#: openatlas/views/note.py:117 msgid "edit note" msgstr "modifier la note" -#: openatlas/views/note.py:126 +#: openatlas/views/note.py:127 msgid "note deleted" msgstr "note supprimée" @@ -2918,3 +2918,6 @@ msgstr "Vous êtes sur le point d'importer la hiérarchie suivante" #~ msgid "license_holder" #~ msgstr "" +#~ msgid "invalid references" +#~ msgstr "système de référence" + diff --git a/openatlas/translations/messages.pot b/openatlas/translations/messages.pot index b85043b2a..96b84c497 100644 --- a/openatlas/translations/messages.pot +++ b/openatlas/translations/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2024-09-09 15:42+0200\n" +"POT-Creation-Date: 2024-10-28 15:56+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -56,7 +56,7 @@ msgstr "" #: openatlas/templates/type/index.html:78 #: openatlas/templates/util/translations.html:6 openatlas/views/admin.py:540 #: openatlas/views/admin.py:560 openatlas/views/annotation.py:41 -#: openatlas/views/export.py:56 openatlas/views/imports.py:179 +#: openatlas/views/export.py:56 openatlas/views/imports.py:178 #: openatlas/views/note.py:39 openatlas/views/tools.py:95 #: openatlas/views/tools.py:97 openatlas/views/type.py:136 #: openatlas/views/user.py:79 openatlas/views/user.py:165 @@ -72,7 +72,7 @@ msgstr "" #: openatlas/views/admin.py:124 openatlas/views/admin.py:435 #: openatlas/views/annotation.py:50 openatlas/views/file.py:39 #: openatlas/views/file.py:50 openatlas/views/hierarchy.py:112 -#: openatlas/views/imports.py:176 openatlas/views/imports.py:240 +#: openatlas/views/imports.py:175 openatlas/views/imports.py:239 #: openatlas/views/link.py:84 openatlas/views/link.py:148 #: openatlas/views/note.py:38 openatlas/views/profile.py:78 #: openatlas/views/profile.py:82 openatlas/views/profile.py:85 @@ -211,7 +211,7 @@ msgstr "" #: openatlas/display/base_display.py:552 openatlas/display/tab.py:95 #: openatlas/forms/add_fields.py:236 openatlas/forms/base_manager.py:141 #: openatlas/forms/field.py:217 openatlas/forms/manager.py:530 -#: openatlas/views/arche.py:36 openatlas/views/imports.py:67 +#: openatlas/views/arche.py:36 openatlas/views/imports.py:66 #: openatlas/views/index.py:71 openatlas/views/profile.py:61 #: openatlas/views/vocabs.py:82 msgid "name" @@ -456,7 +456,7 @@ msgstr "" #: openatlas/display/tab.py:262 openatlas/views/index.py:64 #: openatlas/views/note.py:50 openatlas/views/note.py:56 -#: openatlas/views/note.py:91 +#: openatlas/views/note.py:92 msgid "note" msgstr "" @@ -632,8 +632,8 @@ msgstr "" #: openatlas/forms/field.py:232 #: openatlas/templates/model/cidoc_class_view.html:8 #: openatlas/templates/model/property_view.html:8 -#: openatlas/templates/type/index.html:136 openatlas/views/imports.py:70 -#: openatlas/views/imports.py:130 openatlas/views/index.py:138 +#: openatlas/templates/type/index.html:136 openatlas/views/imports.py:69 +#: openatlas/views/imports.py:129 openatlas/views/index.py:138 #: openatlas/views/note.py:22 msgid "description" msgstr "" @@ -644,7 +644,7 @@ msgstr "" #: openatlas/templates/forms/tree_multi_select.html:111 #: openatlas/templates/forms/tree_multi_select.html:132 #: openatlas/templates/forms/tree_select.html:96 -#: openatlas/templates/forms/tree_select.html:123 openatlas/views/imports.py:71 +#: openatlas/templates/forms/tree_select.html:123 openatlas/views/imports.py:70 #: openatlas/views/user.py:77 msgid "insert" msgstr "" @@ -657,7 +657,7 @@ msgstr "" #: openatlas/forms/setting.py:143 openatlas/forms/setting.py:163 #: openatlas/templates/util/translations.html:4 openatlas/views/admin.py:195 #: openatlas/views/link.py:137 openatlas/views/note.py:23 -#: openatlas/views/note.py:106 openatlas/views/overlay.py:28 +#: openatlas/views/note.py:107 openatlas/views/overlay.py:28 #: openatlas/views/profile.py:30 openatlas/views/tools.py:160 #: openatlas/views/tools.py:239 openatlas/views/user.py:44 msgid "save" @@ -758,7 +758,7 @@ msgstr "" #: openatlas/views/annotation.py:88 openatlas/views/entity_index.py:30 #: openatlas/views/file.py:42 openatlas/views/file.py:60 #: openatlas/views/file.py:62 openatlas/views/file.py:230 -#: openatlas/views/imports.py:252 +#: openatlas/views/imports.py:251 msgid "file" msgstr "" @@ -1075,11 +1075,11 @@ msgstr "" msgid "off" msgstr "" -#: openatlas/forms/validation.py:21 openatlas/views/imports.py:260 +#: openatlas/forms/validation.py:21 openatlas/views/imports.py:259 msgid "file type not allowed" msgstr "" -#: openatlas/forms/validation.py:28 openatlas/views/imports.py:78 +#: openatlas/forms/validation.py:28 openatlas/views/imports.py:77 msgid "error name exists" msgstr "" @@ -1268,19 +1268,19 @@ msgstr "" msgid "example files" msgstr "" -#: openatlas/templates/import_data.html:22 +#: openatlas/templates/import_data.html:23 msgid "error" msgstr "" -#: openatlas/templates/import_data.html:25 +#: openatlas/templates/import_data.html:26 msgid "warning" msgstr "" -#: openatlas/templates/import_data.html:30 +#: openatlas/templates/import_data.html:31 msgid "imported" msgstr "" -#: openatlas/templates/import_data.html:32 +#: openatlas/templates/import_data.html:33 msgid "preview" msgstr "" @@ -1309,10 +1309,10 @@ msgstr "" #: openatlas/views/admin.py:617 openatlas/views/admin.py:619 #: openatlas/views/admin.py:725 openatlas/views/admin.py:727 #: openatlas/views/admin.py:796 openatlas/views/arche.py:30 -#: openatlas/views/export.py:76 openatlas/views/imports.py:145 -#: openatlas/views/imports.py:162 openatlas/views/imports.py:215 -#: openatlas/views/imports.py:237 openatlas/views/imports.py:294 -#: openatlas/views/imports.py:320 openatlas/views/sql.py:29 +#: openatlas/views/export.py:76 openatlas/views/imports.py:144 +#: openatlas/views/imports.py:161 openatlas/views/imports.py:214 +#: openatlas/views/imports.py:236 openatlas/views/imports.py:293 +#: openatlas/views/imports.py:319 openatlas/views/sql.py:29 #: openatlas/views/sql.py:60 openatlas/views/user.py:128 #: openatlas/views/user.py:180 openatlas/views/user.py:220 #: openatlas/views/user.py:256 openatlas/views/user.py:315 @@ -1431,13 +1431,13 @@ msgid "data transfer" msgstr "" #: openatlas/templates/admin/data.html:13 -#: openatlas/templates/util/translations.html:8 openatlas/views/imports.py:143 -#: openatlas/views/imports.py:146 openatlas/views/imports.py:160 -#: openatlas/views/imports.py:163 openatlas/views/imports.py:213 -#: openatlas/views/imports.py:216 openatlas/views/imports.py:235 -#: openatlas/views/imports.py:238 openatlas/views/imports.py:255 -#: openatlas/views/imports.py:292 openatlas/views/imports.py:295 -#: openatlas/views/imports.py:321 openatlas/views/vocabs.py:86 +#: openatlas/templates/util/translations.html:8 openatlas/views/imports.py:142 +#: openatlas/views/imports.py:145 openatlas/views/imports.py:159 +#: openatlas/views/imports.py:162 openatlas/views/imports.py:212 +#: openatlas/views/imports.py:215 openatlas/views/imports.py:234 +#: openatlas/views/imports.py:237 openatlas/views/imports.py:254 +#: openatlas/views/imports.py:291 openatlas/views/imports.py:294 +#: openatlas/views/imports.py:320 openatlas/views/vocabs.py:86 #: openatlas/views/vocabs.py:87 msgid "import" msgstr "" @@ -1911,7 +1911,7 @@ msgstr "" #: openatlas/views/admin.py:349 openatlas/views/arche.py:66 #: openatlas/views/entity.py:236 openatlas/views/entity.py:271 #: openatlas/views/hierarchy.py:40 openatlas/views/hierarchy.py:84 -#: openatlas/views/imports.py:311 openatlas/views/link.py:73 +#: openatlas/views/imports.py:310 openatlas/views/link.py:73 #: openatlas/views/link.py:103 openatlas/views/profile.py:123 #: openatlas/views/sql.py:52 openatlas/views/tools.py:135 #: openatlas/views/tools.py:174 openatlas/views/vocabs.py:182 @@ -2181,80 +2181,76 @@ msgid "invalid OpenAtlas class" msgstr "" #: openatlas/views/imports.py:53 -msgid "invalid references" -msgstr "" - -#: openatlas/views/imports.py:54 msgid "invalid reference id" msgstr "" -#: openatlas/views/imports.py:55 +#: openatlas/views/imports.py:54 msgid "empty names" msgstr "" -#: openatlas/views/imports.py:56 +#: openatlas/views/imports.py:55 msgid "empty ids" msgstr "" -#: openatlas/views/imports.py:57 openatlas/views/imports.py:119 +#: openatlas/views/imports.py:56 openatlas/views/imports.py:118 msgid "missing name column" msgstr "" -#: openatlas/views/imports.py:58 +#: openatlas/views/imports.py:57 msgid "ids already in database" msgstr "" -#: openatlas/views/imports.py:59 +#: openatlas/views/imports.py:58 msgid "double ids in import" msgstr "" -#: openatlas/views/imports.py:60 +#: openatlas/views/imports.py:59 msgid "multiple parent ids" msgstr "" -#: openatlas/views/imports.py:61 +#: openatlas/views/imports.py:60 msgid "invalid openatlas parent id" msgstr "" -#: openatlas/views/imports.py:130 openatlas/views/imports.py:138 -#: openatlas/views/imports.py:164 +#: openatlas/views/imports.py:129 openatlas/views/imports.py:137 +#: openatlas/views/imports.py:163 msgid "project" msgstr "" -#: openatlas/views/imports.py:130 openatlas/views/model.py:62 +#: openatlas/views/imports.py:129 openatlas/views/model.py:62 msgid "entities" msgstr "" -#: openatlas/views/imports.py:155 +#: openatlas/views/imports.py:154 msgid "project inserted" msgstr "" -#: openatlas/views/imports.py:183 +#: openatlas/views/imports.py:182 #, python-format msgid "delete %(name)s?" msgstr "" -#: openatlas/views/imports.py:185 +#: openatlas/views/imports.py:184 msgid "new import" msgstr "" -#: openatlas/views/imports.py:230 +#: openatlas/views/imports.py:229 msgid "project updated" msgstr "" -#: openatlas/views/imports.py:247 +#: openatlas/views/imports.py:246 msgid "project deleted" msgstr "" -#: openatlas/views/imports.py:253 +#: openatlas/views/imports.py:252 msgid "preview only" msgstr "" -#: openatlas/views/imports.py:254 +#: openatlas/views/imports.py:253 msgid "check for duplicates" msgstr "" -#: openatlas/views/imports.py:286 +#: openatlas/views/imports.py:285 msgid "error at import" msgstr "" @@ -2461,7 +2457,7 @@ msgstr "" msgid "set private" msgstr "" -#: openatlas/views/note.py:66 openatlas/views/note.py:104 +#: openatlas/views/note.py:66 openatlas/views/note.py:105 msgid "note updated" msgstr "" @@ -2469,11 +2465,15 @@ msgstr "" msgid "note added" msgstr "" -#: openatlas/views/note.py:116 +#: openatlas/views/note.py:85 +msgid "notes info" +msgstr "" + +#: openatlas/views/note.py:117 msgid "edit note" msgstr "" -#: openatlas/views/note.py:126 +#: openatlas/views/note.py:127 msgid "note deleted" msgstr "" From d5458934953f5fd99258c1a06993739e4619646d Mon Sep 17 00:00:00 2001 From: Alexander Watzinger Date: Mon, 28 Oct 2024 16:29:06 +0100 Subject: [PATCH 15/21] Update changelog --- openatlas/views/changelog.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openatlas/views/changelog.py b/openatlas/views/changelog.py index 7baa8bb27..65bb24391 100644 --- a/openatlas/views/changelog.py +++ b/openatlas/views/changelog.py @@ -18,7 +18,9 @@ def index_changelog() -> str: versions = { '8.8.0': ['TBA', { 'feature': { - '2354': 'Page field of reference import should allow spaces'}, + '2349': 'Stronger hints that notes are not part of the model', + '2354': 'Page field of reference import should allow spaces', + '2351': 'Refactor and minor improvements'}, 'fix': { '2357': 'Wrong direction for reference links to files', '2371': 'Broken export functions'} From 3e448a1fc060c05f92ae06acc0c28334f81dd1e6 Mon Sep 17 00:00:00 2001 From: Bernhard Koschicek-Krombholz Date: Mon, 28 Oct 2024 18:01:02 +0100 Subject: [PATCH 16/21] fixed problem with type root checks at import --- openatlas/models/imports.py | 10 +++++----- openatlas/views/imports.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/openatlas/models/imports.py b/openatlas/models/imports.py index b40981ebf..20714c3a0 100644 --- a/openatlas/models/imports.py +++ b/openatlas/models/imports.py @@ -71,7 +71,7 @@ def check_type_id(type_id: str, class_: str) -> bool: return False if not g.types[int(type_id)].root: return False - root_type = g.types[g.types[int(type_id)].root[-1]] + root_type = g.types[g.types[int(type_id)].root[0]] if class_ not in root_type.classes: return False if root_type.name in ['Administrative unit', 'Historical place']: @@ -82,9 +82,9 @@ def check_type_id(type_id: str, class_: str) -> bool: def check_single_type_duplicates(type_ids: list[str]) -> list[str]: single_types = defaultdict(list) for type_id in type_ids: - if not g.types[int(type_id)].multiple: + if not g.types[g.types[int(type_id)].root[0]].multiple: single_types[ - g.types[g.types[int(type_id)].root[-1]].name].append(type_id) + g.types[g.types[int(type_id)].root[0]].name].append(type_id) single_type_ids = [] for value in single_types.values(): if len(value) > 1: @@ -192,12 +192,12 @@ def insert_gis(entity: Entity, row: dict[str, Any], project: Project) -> None: entity.link('P53', location) if data := row.get('administrative_unit'): if ((str(data).isdigit() and int(data) in g.types) and - g.types[g.types[int(data)].root[-1]].name in [ + g.types[g.types[int(data)].root[0]].name in [ 'Administrative unit']): location.link('P89', g.types[int(data)]) if data := row.get('historical_place'): if ((str(data).isdigit() and int(data) in g.types) and - g.types[g.types[int(data)].root[-1]].name in [ + g.types[g.types[int(data)].root[0]].name in [ 'Historical place']): location.link('P89', g.types[int(data)]) if coordinates := row.get('wkt'): diff --git a/openatlas/views/imports.py b/openatlas/views/imports.py index 08c06a2f6..4f9dbe252 100644 --- a/openatlas/views/imports.py +++ b/openatlas/views/imports.py @@ -518,7 +518,7 @@ def check_cell_value( value = '' if str(value) == 'NaT' else error_span(value) case 'administrative_unit' | 'historical_place' if value: if ((not str(value).isdigit() or int(value) not in g.types) or - g.types[g.types[int(value)].root[-1]].name not in [ + g.types[g.types[int(value)].root[0]].name not in [ 'Administrative unit', 'Historical place']): value = error_span(value) checks.set_warning('invalid_administrative_units', id_) From 463540ab2a8648df61c90a914e29bb15be7d8c27 Mon Sep 17 00:00:00 2001 From: Bernhard Koschicek-Krombholz Date: Tue, 29 Oct 2024 12:37:37 +0100 Subject: [PATCH 17/21] renamed columns in import csv --- openatlas/models/imports.py | 7 ++++--- openatlas/static/example.csv | 4 ++-- openatlas/static/example_place_hierarchy.csv | 2 +- openatlas/views/imports.py | 8 ++++---- sphinx/source/admin/import.rst | 6 +++--- tests/invalid_2.csv | 2 +- tests/invalid_3.csv | 2 +- tests/test_export_import.py | 6 +++--- 8 files changed, 19 insertions(+), 18 deletions(-) diff --git a/openatlas/models/imports.py b/openatlas/models/imports.py index 20714c3a0..bcab09ba3 100644 --- a/openatlas/models/imports.py +++ b/openatlas/models/imports.py @@ -161,12 +161,13 @@ def link_types(entity: Entity, row: dict[str, Any], class_: str) -> None: def link_references(entity: Entity, row: dict[str, Any], class_: str) -> None: - if data := row.get('references'): + if data := row.get('reference_ids'): for references in clean_reference_pages(str(data)): reference = references.split(';') if len(reference) <= 2 and reference[0].isdigit(): try: ref_entity = ApiEntity.get_by_id(int(reference[0])) + print(ref_entity) except EntityDoesNotExistError: continue page = reference[1] or None @@ -190,12 +191,12 @@ def link_references(entity: Entity, row: dict[str, Any], class_: str) -> None: def insert_gis(entity: Entity, row: dict[str, Any], project: Project) -> None: location = Entity.insert('object_location', f"Location of {row['name']}") entity.link('P53', location) - if data := row.get('administrative_unit'): + if data := row.get('administrative_unit_id'): if ((str(data).isdigit() and int(data) in g.types) and g.types[g.types[int(data)].root[0]].name in [ 'Administrative unit']): location.link('P89', g.types[int(data)]) - if data := row.get('historical_place'): + if data := row.get('historical_place_id'): if ((str(data).isdigit() and int(data) in g.types) and g.types[g.types[int(data)].root[0]].name in [ 'Historical place']): diff --git a/openatlas/static/example.csv b/openatlas/static/example.csv index 91685d22c..585cfae8b 100644 --- a/openatlas/static/example.csv +++ b/openatlas/static/example.csv @@ -1,4 +1,4 @@ -id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,references,reference_system_wikidata,reference_system_geonames,administrative_unit,historical_place +id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,reference_ids,reference_system_wikidata,reference_system_geonames,administrative_unit_id,historical_place_id place_1,Vienna,Wien;City of Vienna,Capital of Austria,1500-01-01,1500-12-31,It was a rainy day.,2045-01-01,2049-12-31,We'll see about that.,"POLYGON((16.1203 48.30671, 16.606275 48.30671, 16.606275 48.3154, 16.1203 48.3154, 16.1203 48.30671))",80 184895,128787;-13.56,"117293;IV, 23-45 23235;45 34",Q152419;close_match,2761369;exact_match,87,221630 -place_2,London,,,,,,,,,"POINT (-0.1290 51.5053)",,,,,,, +place_2,London,,,,,,,,,POINT (-0.1290 51.5053),,,,,,, place_3,Rom,,,,,,,,,"LINESTRING (12.458533781141528 41.922205268362234, 12.53062334955289 41.917606998887024, 12.52169797441624 41.888476931243254)",,,,,,, diff --git a/openatlas/static/example_place_hierarchy.csv b/openatlas/static/example_place_hierarchy.csv index 3806d6a96..9eb26d304 100644 --- a/openatlas/static/example_place_hierarchy.csv +++ b/openatlas/static/example_place_hierarchy.csv @@ -1,4 +1,4 @@ -id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,reference_system_wikidata,reference_system_geonames,administrative_unit,historical_place,openatlas_class,parent_id,openatlas_parent_id +id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,reference_system_wikidata,reference_system_geonames,administrative_unit_id,historical_place_id,openatlas_class,parent_id,openatlas_parent_id graveyard_1,Wiener Zentralfriedhof,Vienna Central Cemetery;Totenstadt,Important cemetery of Vienna,1874-10-30,1874-11-01,Catholic sanctification.,2045-01-01,2049-12-31,We'll see about that.,"POLYGON((16.432684607765054 48.1594203105231,16.427191443702554 48.15363730600759,16.43277043845353 48.144016607097214,16.435087867042398 48.141897520349765,16.43903607871232 48.14138205358886,16.452168174049234 48.1413247791848,16.455944724342203 48.15031607808294,16.441868491432047 48.15438168967352,16.432684607765054 48.1594203105231))",80 184895,128787;-13.56,Q240744;exact_match,3322690;exact_match,87,221630,place,, feature_1,Grave 1,,,,,,,,,,,,,,,,feature,graveyard_1, strati_1,Filling 1,,,,,,,,,"GEOMETRYCOLLECTION (POINT (10 10), LINESTRING (0 0, 10 10))",,,,,,,stratigraphic_unit,feature_1, diff --git a/openatlas/views/imports.py b/openatlas/views/imports.py index 4f9dbe252..193d76e60 100644 --- a/openatlas/views/imports.py +++ b/openatlas/views/imports.py @@ -425,14 +425,14 @@ def get_allowed_columns(class_: str) -> dict[str, list[str]]: columns.extend([ 'begin_from', 'begin_to', 'begin_comment', 'end_from', 'end_to', 'end_comment', - 'references']) + 'reference_ids']) if class_ in ['place', 'person', 'group']: columns.append('alias') if class_ in ['place', 'artifact']: columns.append('wkt') if class_ in ['place']: columns.extend([ - 'administrative_unit', 'historical_place', 'parent_id', + 'administrative_unit_id', 'historical_place_id', 'parent_id', 'openatlas_class', 'openatlas_parent_id']) return { 'allowed': columns, @@ -487,7 +487,7 @@ def check_cell_value( checks.set_warning('invalid_value_type_values', id_) value_types.append(';'.join(values)) value = ' '.join(value_types) - case 'references' if value: + case 'reference_ids' if value: references = [] for reference in clean_reference_pages(str(value)): values = str(reference).split(';') @@ -516,7 +516,7 @@ def check_cell_value( except ValueError: row[item] = '' value = '' if str(value) == 'NaT' else error_span(value) - case 'administrative_unit' | 'historical_place' if value: + case 'administrative_unit_id' | 'historical_place_id' if value: if ((not str(value).isdigit() or int(value) not in g.types) or g.types[g.types[int(value)].root[0]].name not in [ 'Administrative unit', 'Historical place']): diff --git a/sphinx/source/admin/import.rst b/sphinx/source/admin/import.rst index 117d3e77c..30d3c8f91 100644 --- a/sphinx/source/admin/import.rst +++ b/sphinx/source/admin/import.rst @@ -78,14 +78,14 @@ imported and an error message will be displayed * **type_ids** - used for linking to a type, see :ref:`Types import` * **value_types** - used for linking to a value type, see :ref:`Value types import` -* **references** - used for linking data to already existing references in +* **reference_ids** - used for linking data to already existing references in the database, see :ref:`References import` * **wkt** - only available for places and artifacts, see :ref:`WKT import` * **reference_system_*** - used for linking data to already existing external reference systems in the database, see :ref:`Reference systems import` -* **administrative_unit** - only available for places, ID of existing +* **administrative_unit_id** - only available for places, ID of existing administrative unit -* **historical_place** - only available for places, ID of existing +* **historical_place_id** - only available for places, ID of existing historical place * **parent_id** - only available for place, ID of a super unit in a place hierarchy, see :ref:`Place hierarchy import` diff --git a/tests/invalid_2.csv b/tests/invalid_2.csv index 2886bd0ec..a8daaffc5 100644 --- a/tests/invalid_2.csv +++ b/tests/invalid_2.csv @@ -1,4 +1,4 @@ -id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,references,reference_system_wikidata,reference_system_geon,administrative_unit,historical_place,not_existing_column +id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,reference_ids,reference_system_wikidata,reference_system_geon,administrative_unit_id,historical_place_id,not_existing_column place_1,Vienna,Wien,Capital of Austria,not_a_date,NaT,It was a rainy day.,,2049-12-31,We'll see about that.,"MULTILINESTRING ((10 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))",666,666;12B34,“666b;213;41 12b 666;IV”,123;away,juhhu;4545,777,888, place_1,,,,,,,,,,"MULTILINESTRING ((BLA 10, 20 20, 10 40),(40 40, 30 30, 40 20, 30 10))",,,,,,,, place_1,Vienna,,,,,,,,,,,,,,,,, diff --git a/tests/invalid_3.csv b/tests/invalid_3.csv index 218e81650..b1762d44a 100644 --- a/tests/invalid_3.csv +++ b/tests/invalid_3.csv @@ -1,4 +1,4 @@ -id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,reference_system_wikidata,reference_system_geonames,administrative_unit,historical_place,openatlas_class,parent_id,openatlas_parent_id +id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,reference_system_wikidata,reference_system_geonames,administrative_unit_id,historical_place_id,openatlas_class,parent_id,openatlas_parent_id new_place,Vienna,Wien,Capital of Austria,not_a_date,NaT,It was a rainy day.,,2049-12-31,We'll see about that.,"POLYGON((16.1203 BLA, 16.606275 48.30671, 16.606275 48.3154, 16.1203 48.3154, 16.1203 48.30671))",666,1456;,sdf,215;,,,Ort,, feature_1,Grave 1,,,,,,,,,,,,,,,,feature,new_place, strati_1,Filling 1,,,,,,,,,,,,,,,,stratigraphic unit,feature_1, diff --git a/tests/test_export_import.py b/tests/test_export_import.py index 4bd79ebbf..0d84f33f3 100644 --- a/tests/test_export_import.py +++ b/tests/test_export_import.py @@ -229,8 +229,8 @@ def test_export2(self) -> None: data_frame.at[0, 'id'] = 'new_place_1' data_frame.at[1, 'id'] = 'new_place_2' data_frame.at[2, 'id'] = 'new_place_3' - data_frame.at[0, 'administrative_unit'] = austria.id - data_frame.at[0, 'historical_place'] = carantania.id + data_frame.at[0, 'administrative_unit_id'] = austria.id + data_frame.at[0, 'historical_place_id'] = carantania.id type_ids = [ boundary_mark.id, infrastructure.id, @@ -238,7 +238,7 @@ def test_export2(self) -> None: place_type.id] data_frame.at[0, 'type_ids'] = ' '.join(map(str, type_ids)) data_frame.at[0, 'value_types'] = f'{height.id};42' - data_frame.at[0, 'references'] = f'{reference.id};IV' + data_frame.at[0, 'reference_ids'] = f'{reference.id};IV' data_frame.at[0, 'wkt'] = "POLYGON((16.1203 BLA, 16.606275))" data_frame.to_csv(self.test_path / 'example.csv', index=False) with open(self.test_path / 'example.csv', 'rb') as file: From 5acc9d6e4ba4674184865d8e1e1d3320a7876350 Mon Sep 17 00:00:00 2001 From: Bernhard Koschicek-Krombholz Date: Tue, 29 Oct 2024 13:48:04 +0100 Subject: [PATCH 18/21] added reference link for literature through origin id at import --- openatlas/database/imports.py | 10 ++++++ openatlas/models/imports.py | 29 +++++++++++---- openatlas/static/example.csv | 8 ++--- openatlas/views/imports.py | 64 ++++++++++++++++++++-------------- sphinx/source/admin/import.rst | 7 ++-- tests/bibliographie.csv | 2 ++ 6 files changed, 81 insertions(+), 39 deletions(-) create mode 100644 tests/bibliographie.csv diff --git a/openatlas/database/imports.py b/openatlas/database/imports.py index c7e790820..9e3fe7bc9 100644 --- a/openatlas/database/imports.py +++ b/openatlas/database/imports.py @@ -58,6 +58,16 @@ def check_origin_ids(project_id: int, origin_ids: list[str]) -> list[str]: return [row['origin_id'] for row in g.cursor.fetchall()] +def get_id_from_origin_id(project_id: int, origin_id: str) -> str: + g.cursor.execute( + """ + SELECT entity_id FROM import.entity + WHERE project_id = %(project_id)s AND origin_id = %(ids)s; + """, + {'project_id': project_id, 'ids': origin_id}) + return g.cursor.fetchone()[0] + + def check_duplicates(class_: str, names: list[str]) -> list[str]: g.cursor.execute( """ diff --git a/openatlas/models/imports.py b/openatlas/models/imports.py index bcab09ba3..684688dac 100644 --- a/openatlas/models/imports.py +++ b/openatlas/models/imports.py @@ -62,6 +62,10 @@ def get_origin_ids(project: Project, origin_ids: list[str]) -> list[str]: return db.check_origin_ids(project.id, origin_ids) +def get_id_from_origin_id(project: Project, origin_id: str) -> str: + return db.get_id_from_origin_id(project.id, origin_id) + + def check_duplicates(class_: str, names: list[str]) -> list[str]: return db.check_duplicates(class_, names) @@ -110,7 +114,7 @@ def import_data_(project: Project, class_: str, data: list[Any]) -> None: insert_alias(entity, row) insert_dates(entity, row) link_types(entity, row, class_) - link_references(entity, row, class_) + link_references(entity, row, class_, project) if class_ in g.view_class_mapping['place'] \ + g.view_class_mapping['artifact']: insert_gis(entity, row, project) @@ -160,18 +164,31 @@ def link_types(entity: Entity, row: dict[str, Any], class_: str) -> None: entity.link('P2', g.types[int(value_type[0])], value_type[1]) -def link_references(entity: Entity, row: dict[str, Any], class_: str) -> None: - if data := row.get('reference_ids'): - for references in clean_reference_pages(str(data)): +def link_references( + entity: Entity, + row: dict[str, Any], + class_: str, + project: Project) -> None: + if ref_ids := row.get('reference_ids'): + for references in clean_reference_pages(str(ref_ids)): reference = references.split(';') if len(reference) <= 2 and reference[0].isdigit(): try: ref_entity = ApiEntity.get_by_id(int(reference[0])) - print(ref_entity) except EntityDoesNotExistError: continue page = reference[1] or None ref_entity.link('P67', entity, page) + if origin_ref_ids := row.get('origin_reference_ids'): + for references in clean_reference_pages(str(origin_ref_ids)): + reference = references.split(';') + if ref_id := get_id_from_origin_id(project, reference[0]): + try: + ref_entity = ApiEntity.get_by_id(int(ref_id)) + except EntityDoesNotExistError: + continue + page = reference[1] or None + ref_entity.link('P67', entity, page) match_types = get_match_types() systems = list(set(i for i in row if i.startswith('reference_system_'))) for header in systems: @@ -219,5 +236,5 @@ def insert_gis(entity: Entity, row: dict[str, Any], project: Project) -> None: def clean_reference_pages(value: str) -> list[str]: - matches = re.findall(r'([a-zA-Z\d]*;[^;]*?(?=[a-zA-Z\d]*;|$))', value) + matches = re.findall(r'([\w\-]*;[^;]*?(?=[a-zA-Z\d]*;|$))', value) return [match.strip() for match in matches] diff --git a/openatlas/static/example.csv b/openatlas/static/example.csv index 585cfae8b..ef4d42a8c 100644 --- a/openatlas/static/example.csv +++ b/openatlas/static/example.csv @@ -1,4 +1,4 @@ -id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,reference_ids,reference_system_wikidata,reference_system_geonames,administrative_unit_id,historical_place_id -place_1,Vienna,Wien;City of Vienna,Capital of Austria,1500-01-01,1500-12-31,It was a rainy day.,2045-01-01,2049-12-31,We'll see about that.,"POLYGON((16.1203 48.30671, 16.606275 48.30671, 16.606275 48.3154, 16.1203 48.3154, 16.1203 48.30671))",80 184895,128787;-13.56,"117293;IV, 23-45 23235;45 34",Q152419;close_match,2761369;exact_match,87,221630 -place_2,London,,,,,,,,,POINT (-0.1290 51.5053),,,,,,, -place_3,Rom,,,,,,,,,"LINESTRING (12.458533781141528 41.922205268362234, 12.53062334955289 41.917606998887024, 12.52169797441624 41.888476931243254)",,,,,,, +id,name,alias,description,begin_from,begin_to,begin_comment,end_from,end_to,end_comment,wkt,type_ids,value_types,reference_ids,reference_system_wikidata,reference_system_geonames,administrative_unit_id,historical_place_id,origin_reference_ids +place_1,Vienna,Wien;City of Vienna,Capital of Austria,1500-01-01,1500-12-31,It was a rainy day.,2045-01-01,2049-12-31,We'll see about that.,"POLYGON((16.1203 48.30671, 16.606275 48.30671, 16.606275 48.3154, 16.1203 48.3154, 16.1203 48.30671))",80 184895,128787;-13.56,"117293;IV, 23-45 23235;45 34",Q152419;close_match,2761369;exact_match,87,221630,literature_1;34-45 +place_2,London,,,,,,,,,POINT (-0.1290 51.5053),,,,,,,, +place_3,Rom,,,,,,,,,"LINESTRING (12.458533781141528 41.922205268362234, 12.53062334955289 41.917606998887024, 12.52169797441624 41.888476931243254)",,,,,,,, diff --git a/openatlas/views/imports.py b/openatlas/views/imports.py index 193d76e60..0a62af55f 100644 --- a/openatlas/views/imports.py +++ b/openatlas/views/imports.py @@ -34,7 +34,7 @@ from openatlas.models.entity import Entity from openatlas.models.imports import ( Project, check_duplicates, check_single_type_duplicates, check_type_id, - clean_reference_pages, get_origin_ids, import_data_) + clean_reference_pages, get_id_from_origin_id, get_origin_ids, import_data_) _('invalid columns') _('possible duplicates') @@ -51,6 +51,7 @@ _('invalid coordinates') _('invalid OpenAtlas class') _('invalid reference id') +_('invalid origin reference id') _('empty names') _('empty ids') _('missing name column') @@ -272,28 +273,28 @@ def import_data(project_id: int, class_: str) -> str: class_label = g.classes[class_].label checks = CheckHandler() if form.validate_on_submit(): - try: - checked_data: list[Any] = [] - table = check_data_for_table_representation( - form, - class_, - checks, - checked_data, - project) - except Exception as e: - g.logger.log('error', 'import', 'import check failed', e) - flash(_('error at import'), 'error') - return render_template( - 'import_data.html', - form=form, - messages=checks.messages, - file_data=file_data, - title=_('import'), - crumbs=[ - [_('admin'), f"{url_for('admin_index')}#tab-data"], - [_('import'), url_for('import_index')], - project, - class_label]) + # try: + checked_data: list[Any] = [] + table = check_data_for_table_representation( + form, + class_, + checks, + checked_data, + project) + # except Exception as e: + # g.logger.log('error', 'import', 'import check failed', e) + # flash(_('error at import'), 'error') + # return render_template( + # 'import_data.html', + # form=form, + # messages=checks.messages, + # file_data=file_data, + # title=_('import'), + # crumbs=[ + # [_('admin'), f"{url_for('admin_index')}#tab-data"], + # [_('import'), url_for('import_index')], + # project, + # class_label]) if not form.preview.data and checked_data and ( not file_data['backup_too_old'] or app.testing): @@ -348,7 +349,8 @@ def check_data_for_table_representation( table_row = [] checked_row = {} for item in headers: - table_row.append(check_cell_value(row, item, class_, checks)) + table_row.append( + check_cell_value(row, item, class_, checks, project)) checked_row[item] = row[item] if item == 'name' and form.duplicate.data: names.append(row['name'].lower()) @@ -425,7 +427,7 @@ def get_allowed_columns(class_: str) -> dict[str, list[str]]: columns.extend([ 'begin_from', 'begin_to', 'begin_comment', 'end_from', 'end_to', 'end_comment', - 'reference_ids']) + 'reference_ids', 'origin_reference_ids']) if class_ in ['place', 'person', 'group']: columns.append('alias') if class_ in ['place', 'artifact']: @@ -444,7 +446,8 @@ def check_cell_value( row: Series, item: str, class_: str, - checks: CheckHandler) -> str: + checks: CheckHandler, + project: Project) -> str: value = row[item] id_ = row.get('id') if openatlas_class := row.get('openatlas_class'): @@ -502,6 +505,15 @@ def check_cell_value( checks.set_warning('invalid_reference_id', id_) references.append(';'.join(values)) value = ' '.join(references) + case 'origin_reference_ids' if value: + origin_references = [] + for reference in clean_reference_pages(str(value)): + values = str(reference).split(';') + if not get_id_from_origin_id(project, values[0]): + checks.set_warning('invalid_origin_reference_id', id_) + values[0] = error_span(values[0]) + origin_references.append(';'.join(values)) + value = ' '.join(origin_references) case 'wkt' if value: try: wkt.loads(row[item]) diff --git a/sphinx/source/admin/import.rst b/sphinx/source/admin/import.rst index 30d3c8f91..2cb44daee 100644 --- a/sphinx/source/admin/import.rst +++ b/sphinx/source/admin/import.rst @@ -63,14 +63,15 @@ Possible import fields Column headers can contain the following titles. Other titles won't be imported and an error message will be displayed +* **id** - this field has to be **unique per project**; if you have + same IDs like a person and place with id = 1, you can prefix them in the + document e.g. person_1, place_1 before importing. Please use only characters, + numbers, underscore (_) or hyphen (-). * **name** - required, an error will be displayed if name; the data will not get imported if a name is missing * **alias** - only available for person, group and place, see :ref:`Alias import` * **description** - a description can be provided -* **id** - this field has to be **unique per project**; if you have - same IDs like a person and place with id = 1, you can prefix them in the - document e.g. person_1, place_1 before importing * **begin_from** - used for dates, see :ref:`Dates import` * **begin_to** - used for dates, see :ref:`Dates import` * **end_from** - used for dates, see :ref:`Dates import` diff --git a/tests/bibliographie.csv b/tests/bibliographie.csv new file mode 100644 index 000000000..2979f47f6 --- /dev/null +++ b/tests/bibliographie.csv @@ -0,0 +1,2 @@ +id,name,description,type_ids +literature_1,OpenAtlas 2024,"OpenAtlas – How to test your software, 2024 Vienna.", From 69d9fcf446bed1d22e9ef4677989e46cb3ce8868 Mon Sep 17 00:00:00 2001 From: Bernhard Koschicek-Krombholz Date: Tue, 29 Oct 2024 14:46:49 +0100 Subject: [PATCH 19/21] tested origin reference import --- openatlas/database/imports.py | 4 +- openatlas/models/imports.py | 7 +-- openatlas/views/imports.py | 44 +++++++++---------- sphinx/source/admin/import.rst | 24 ++++++++++ tests/{bibliographie.csv => bibliography.csv} | 0 tests/test_export_import.py | 11 +++++ 6 files changed, 61 insertions(+), 29 deletions(-) rename tests/{bibliographie.csv => bibliography.csv} (100%) diff --git a/openatlas/database/imports.py b/openatlas/database/imports.py index 9e3fe7bc9..6c066a07a 100644 --- a/openatlas/database/imports.py +++ b/openatlas/database/imports.py @@ -58,14 +58,14 @@ def check_origin_ids(project_id: int, origin_ids: list[str]) -> list[str]: return [row['origin_id'] for row in g.cursor.fetchall()] -def get_id_from_origin_id(project_id: int, origin_id: str) -> str: +def get_id_from_origin_id(project_id: int, origin_id: str) -> list[str]: g.cursor.execute( """ SELECT entity_id FROM import.entity WHERE project_id = %(project_id)s AND origin_id = %(ids)s; """, {'project_id': project_id, 'ids': origin_id}) - return g.cursor.fetchone()[0] + return g.cursor.fetchone() def check_duplicates(class_: str, names: list[str]) -> list[str]: diff --git a/openatlas/models/imports.py b/openatlas/models/imports.py index 684688dac..c7b586e1e 100644 --- a/openatlas/models/imports.py +++ b/openatlas/models/imports.py @@ -62,7 +62,7 @@ def get_origin_ids(project: Project, origin_ids: list[str]) -> list[str]: return db.check_origin_ids(project.id, origin_ids) -def get_id_from_origin_id(project: Project, origin_id: str) -> str: +def get_id_from_origin_id(project: Project, origin_id: str) -> list[str]: return db.get_id_from_origin_id(project.id, origin_id) @@ -183,10 +183,7 @@ def link_references( for references in clean_reference_pages(str(origin_ref_ids)): reference = references.split(';') if ref_id := get_id_from_origin_id(project, reference[0]): - try: - ref_entity = ApiEntity.get_by_id(int(ref_id)) - except EntityDoesNotExistError: - continue + ref_entity = ApiEntity.get_by_id(int(ref_id[0])) page = reference[1] or None ref_entity.link('P67', entity, page) match_types = get_match_types() diff --git a/openatlas/views/imports.py b/openatlas/views/imports.py index 0a62af55f..404df50a3 100644 --- a/openatlas/views/imports.py +++ b/openatlas/views/imports.py @@ -273,28 +273,28 @@ def import_data(project_id: int, class_: str) -> str: class_label = g.classes[class_].label checks = CheckHandler() if form.validate_on_submit(): - # try: - checked_data: list[Any] = [] - table = check_data_for_table_representation( - form, - class_, - checks, - checked_data, - project) - # except Exception as e: - # g.logger.log('error', 'import', 'import check failed', e) - # flash(_('error at import'), 'error') - # return render_template( - # 'import_data.html', - # form=form, - # messages=checks.messages, - # file_data=file_data, - # title=_('import'), - # crumbs=[ - # [_('admin'), f"{url_for('admin_index')}#tab-data"], - # [_('import'), url_for('import_index')], - # project, - # class_label]) + try: + checked_data: list[Any] = [] + table = check_data_for_table_representation( + form, + class_, + checks, + checked_data, + project) + except Exception as e: + g.logger.log('error', 'import', 'import check failed', e) + flash(_('error at import'), 'error') + return render_template( + 'import_data.html', + form=form, + messages=checks.messages, + file_data=file_data, + title=_('import'), + crumbs=[ + [_('admin'), f"{url_for('admin_index')}#tab-data"], + [_('import'), url_for('import_index')], + project, + class_label]) if not form.preview.data and checked_data and ( not file_data['backup_too_old'] or app.testing): diff --git a/sphinx/source/admin/import.rst b/sphinx/source/admin/import.rst index 2cb44daee..39744d73c 100644 --- a/sphinx/source/admin/import.rst +++ b/sphinx/source/admin/import.rst @@ -81,6 +81,9 @@ imported and an error message will be displayed import` * **reference_ids** - used for linking data to already existing references in the database, see :ref:`References import` +* **origin_reference_ids** - used for linking data to already existing + references in the database within the same project, + see :ref:`Origin references import` * **wkt** - only available for places and artifacts, see :ref:`WKT import` * **reference_system_*** - used for linking data to already existing external reference systems in the database, see :ref:`Reference systems import` @@ -169,6 +172,27 @@ The imported data can be linked to an already existing * the ID of each :doc:`/entity/reference` can be found at the detail view of said reference in your OpenAtlas instance + +.. _Origin references import: + +Origin references ++++++++++++++++++ +The imported data can be linked to an already existing +:doc:`/entity/reference` within the same import project and through the origin +ID (the ID which was given in the import), e.g. "literature_1". + +* :doc:`/entity/reference` origin ID and pages are separated by a semicolon + (**;**), e.g. literature_1;56-78 +* to link a :doc:`/entity/reference` with multiple page numbers, wrap the + whole cell in quotation marks, e.g. "literature_1;IV, 56-78 book_2;34-23 66;" +* to link a :doc:`/entity/reference` without page numbers, just add the ID + and a semicolon (**;**) without further information +* enter multiple :doc:`/entity/reference` separated by a space, e.g. literature_1; + 56-78 book_2; +* the **origin ID** of each :doc:`/entity/reference` can be found at the detail view of + said reference in your OpenAtlas instance if you have **Show import information** + enabled in your :doc:`/tools/profile`. + .. _WKT import: WKT coordinates diff --git a/tests/bibliographie.csv b/tests/bibliography.csv similarity index 100% rename from tests/bibliographie.csv rename to tests/bibliography.csv diff --git a/tests/test_export_import.py b/tests/test_export_import.py index 0d84f33f3..f69ab33b5 100644 --- a/tests/test_export_import.py +++ b/tests/test_export_import.py @@ -75,6 +75,16 @@ def test_export(self) -> None: url_for('import_data', class_='person', project_id=p_id)) assert b'file *' in rv.data + with open(self.test_path / 'bibliography.csv', 'rb') as file: + rv = self.app.post( + url_for( + 'import_data', + class_='bibliography', + project_id=p_id), + data={'file': file, 'duplicate': True}, + follow_redirects=True) + assert b'OpenAtlas 2024' in rv.data + with open(self.static_path / 'example.csv', 'rb') as file: rv = self.app.post( url_for('import_data', class_='place', project_id=p_id), @@ -247,6 +257,7 @@ def test_export2(self) -> None: data={'file': file, 'duplicate': True}, follow_redirects=True) assert b'single type duplicates' in rv.data + assert b'invalid origin reference id' in rv.data assert b'Vienna' in rv.data with open(self.test_path / 'example.csv', 'rb') as file: From 04b995bc25183d7d80f05e20df900b897e23cedc Mon Sep 17 00:00:00 2001 From: Bernhard Koschicek-Krombholz Date: Tue, 29 Oct 2024 14:48:44 +0100 Subject: [PATCH 20/21] pylint --- openatlas/models/imports.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openatlas/models/imports.py b/openatlas/models/imports.py index c7b586e1e..5c6cd8fa6 100644 --- a/openatlas/models/imports.py +++ b/openatlas/models/imports.py @@ -181,11 +181,11 @@ def link_references( ref_entity.link('P67', entity, page) if origin_ref_ids := row.get('origin_reference_ids'): for references in clean_reference_pages(str(origin_ref_ids)): - reference = references.split(';') - if ref_id := get_id_from_origin_id(project, reference[0]): - ref_entity = ApiEntity.get_by_id(int(ref_id[0])) - page = reference[1] or None - ref_entity.link('P67', entity, page) + reference = references.split(';') + if ref_id := get_id_from_origin_id(project, reference[0]): + ref_entity = ApiEntity.get_by_id(int(ref_id[0])) + page = reference[1] or None + ref_entity.link('P67', entity, page) match_types = get_match_types() systems = list(set(i for i in row if i.startswith('reference_system_'))) for header in systems: From 304e2a91066855d2b3f07c97cf0677d918386bef Mon Sep 17 00:00:00 2001 From: Bernhard Koschicek-Krombholz Date: Tue, 29 Oct 2024 15:03:00 +0100 Subject: [PATCH 21/21] regex for import references was buggy --- openatlas/models/imports.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openatlas/models/imports.py b/openatlas/models/imports.py index 5c6cd8fa6..db501a8d3 100644 --- a/openatlas/models/imports.py +++ b/openatlas/models/imports.py @@ -233,5 +233,5 @@ def insert_gis(entity: Entity, row: dict[str, Any], project: Project) -> None: def clean_reference_pages(value: str) -> list[str]: - matches = re.findall(r'([\w\-]*;[^;]*?(?=[a-zA-Z\d]*;|$))', value) + matches = re.findall(r'([\w\-]*;[^;]*?(?=[\w\-]*;|$))', value) return [match.strip() for match in matches]