Add HTML5 metadata authoring form
This commit is contained in:
@@ -117,6 +117,9 @@ def test_html5_server_rendered_project_editor(tmp_path: Path):
|
||||
assert f'hx-post="/html5/projects/{project_id}/authoring/completion-preview"' in editor.text
|
||||
assert "data-html5-authoring-diff-form" in editor.text
|
||||
assert f'hx-post="/html5/projects/{project_id}/authoring/semantic-diff-preview"' in editor.text
|
||||
assert "data-html5-metadata-authoring" in editor.text
|
||||
assert "data-html5-metadata-preview-form" in editor.text
|
||||
assert f'hx-post="/html5/projects/{project_id}/authoring/metadata-object-preview"' in editor.text
|
||||
assert "data-html5-authoring-changes" in editor.text
|
||||
assert f'hx-get="/html5/projects/{project_id}/authoring/changes"' in editor.text
|
||||
assert 'hx-get="/html5/projects/' in editor.text
|
||||
@@ -2723,6 +2726,53 @@ def test_authoring_metadata_object_preview_and_apply(tmp_path: Path):
|
||||
assert any("ТабличнаяЧасть.Товары" in row["text"] for row in preview_payload["semantic_diff"])
|
||||
assert any("Команда.Заполнить" in row["text"] for row in preview_payload["semantic_diff"])
|
||||
|
||||
html5_preview = client.post(
|
||||
f"/html5/projects/{project_id}/authoring/metadata-object-preview",
|
||||
data={
|
||||
"object_kind": "DOCUMENT",
|
||||
"name": "ЗаявкаНаЗакупкуHtml5",
|
||||
"synonym": "Заявка на закупку HTML5",
|
||||
"attributes": "Контрагент:СправочникСсылка.Контрагенты",
|
||||
"tabular_sections": "Товары[Номенклатура:СправочникСсылка.Номенклатура;Количество:Число]",
|
||||
"forms": "ФормаДокумента",
|
||||
"commands": "Заполнить:ЗаполнитьКоманда",
|
||||
"task_id": "task.metadata",
|
||||
"session_id": "session.metadata",
|
||||
"user_id": "dev.ivan",
|
||||
},
|
||||
)
|
||||
assert html5_preview.status_code == 200
|
||||
assert "text/html" in html5_preview.headers["content-type"]
|
||||
assert "data-html5-metadata-preview-result" in html5_preview.text
|
||||
assert "data-html5-metadata-apply-form" in html5_preview.text
|
||||
assert f'hx-post="/html5/projects/{project_id}/authoring/apply-metadata-object"' in html5_preview.text
|
||||
assert "Документ.ЗаявкаНаЗакупкуHtml5" in html5_preview.text
|
||||
assert "Реквизит.Контрагент" in html5_preview.text
|
||||
assert "<html" not in html5_preview.text
|
||||
|
||||
html5_blocked_apply = client.post(
|
||||
f"/html5/projects/{project_id}/authoring/apply-metadata-object",
|
||||
data={
|
||||
"object_kind": "DOCUMENT",
|
||||
"name": "ЗаявкаНаЗакупкуHtml5",
|
||||
"synonym": "Заявка на закупку HTML5",
|
||||
"attributes": "Контрагент:СправочникСсылка.Контрагенты",
|
||||
"tabular_sections": "Товары[Номенклатура:СправочникСсылка.Номенклатура;Количество:Число]",
|
||||
"forms": "ФормаДокумента",
|
||||
"commands": "Заполнить:ЗаполнитьКоманда",
|
||||
"task_id": "task.metadata",
|
||||
"session_id": "session.metadata",
|
||||
"user_id": "dev.ivan",
|
||||
"expected_next_version_id": "wrong-version",
|
||||
"approved_by": "dev.ivan",
|
||||
},
|
||||
)
|
||||
assert html5_blocked_apply.status_code == 200
|
||||
assert "text/html" in html5_blocked_apply.headers["content-type"]
|
||||
assert "data-html5-metadata-apply-result" in html5_blocked_apply.text
|
||||
assert "Expected version id does not match current metadata preview" in html5_blocked_apply.text
|
||||
assert "<html" not in html5_blocked_apply.text
|
||||
|
||||
apply_response = client.post(
|
||||
f"/projects/{project_id}/authoring/apply-metadata-object",
|
||||
json={
|
||||
|
||||
Reference in New Issue
Block a user