Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update backend services for nonlocalized string model changes #130 #132

Merged
merged 1 commit into from
Nov 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions arches_lingo/migrations/0001_initial.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ class Migration(migrations.Migration):
CREATE VIEW arches_lingo__vw_label_values AS (
SELECT
t.resourceinstanceid AS conceptid,
ROW_TO_JSON(JSONB_EACH(t.tiledata -> '{CONCEPT_NAME_CONTENT_NODE}'))
-> 'value' ->> 'value' AS value
t.tiledata ->> '{CONCEPT_NAME_CONTENT_NODE}' AS value
FROM
tiles t
ORDER BY
Expand Down
4 changes: 3 additions & 1 deletion arches_lingo/migrations/0002_load_lingo_lists.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import io
import os

from django.db import migrations
from django.core import management
from arches_lingo.settings import APP_ROOT
from arches_references.models import List, ListItem, ListItemValue


class Migration(migrations.Migration):
Expand All @@ -22,6 +23,7 @@ def load_lists(apps, schema_editor):
"controlled_lists",
"lingo_lists.json",
),
stdout=io.StringIO(),
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just to silence the extra output during migrate ("n objects installed from fixture")

)

operations = [
Expand Down
14 changes: 3 additions & 11 deletions arches_lingo/utils/concept_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from django.core.cache import caches
from django.db.models import CharField, F, OuterRef, Value
from django.db.models.expressions import CombinedExpression
from django.utils.translation import gettext_lazy as _
from django.utils.translation import gettext as _

from arches.app.models.models import ResourceInstance, TileModel

Expand Down Expand Up @@ -163,11 +163,7 @@ def serialize_scheme(self, scheme: ResourceInstance, *, children=True):
def serialize_scheme_label(self, label_tile: dict):
valuetype_id = label_tile[SCHEME_NAME_TYPE_NODE][0]["labels"][0]["value"]
language_id = label_tile[SCHEME_NAME_LANGUAGE_NODE][0]["labels"][0]["value"]
localized_string_objs = label_tile[SCHEME_NAME_CONTENT_NODE].values()
try:
value = next(iter(localized_string_objs))["value"]
except (StopIteration, KeyError):
value = "Unknown"
value = label_tile[SCHEME_NAME_CONTENT_NODE] or _("Unknown")
return {
"valuetype_id": valuetype_id,
"language_id": language_id,
Expand Down Expand Up @@ -223,11 +219,7 @@ def add_broader_concept_recursive(self, working_parent_list, conceptid):
def serialize_concept_label(self, label_tile: dict):
valuetype_id = label_tile[CONCEPT_NAME_TYPE_NODE][0]["labels"][0]["value"]
language_id = label_tile[CONCEPT_NAME_LANGUAGE_NODE][0]["labels"][0]["value"]
localized_string_objs = label_tile[CONCEPT_NAME_CONTENT_NODE].values()
try:
value = next(iter(localized_string_objs))["value"]
except (StopIteration, KeyError):
value = "Unknown"
value = label_tile[CONCEPT_NAME_CONTENT_NODE] or _("Unknown")
return {
"valuetype_id": valuetype_id,
"language_id": language_id,
Expand Down
18 changes: 7 additions & 11 deletions tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,6 @@
)


def localized_string(text, language="en", direction="ltr"):
return {language: {"value": text, "direction": direction}}


class ViewTests(TestCase):
@classmethod
def mock_concept_and_scheme_graphs(cls):
Expand Down Expand Up @@ -75,8 +71,8 @@ def mock_concept_and_scheme_graphs(cls):
SCHEME_NAME_NODEGROUP,
SCHEME_NAME_CONTENT_NODE,
"appellative_status_ascribed_name_content",
"string",
{"en": ""},
"non-localized-string",
{},
),
(
SCHEME_NAME_NODEGROUP,
Expand All @@ -89,8 +85,8 @@ def mock_concept_and_scheme_graphs(cls):
CONCEPT_NAME_NODEGROUP,
CONCEPT_NAME_CONTENT_NODE,
"appellative_status_ascribed_name_content",
"string",
{"en": ""},
"non-localized-string",
{},
),
(
CONCEPT_NAME_NODEGROUP,
Expand All @@ -111,7 +107,7 @@ def mock_concept_and_scheme_graphs(cls):
istopnode=False,
datatype=datatype,
config=config,
isrequired=datatype == "string",
isrequired=False,
)

@classmethod
Expand All @@ -135,7 +131,7 @@ def setUpTestData(cls):
resourceinstance=cls.scheme,
nodegroup_id=SCHEME_NAME_NODEGROUP,
data={
SCHEME_NAME_CONTENT_NODE: localized_string("Test Scheme"),
SCHEME_NAME_CONTENT_NODE: "Test Scheme",
SCHEME_NAME_TYPE_NODE: prefLabel_reference_dt,
SCHEME_NAME_LANGUAGE_NODE: en_reference_dt,
},
Expand All @@ -155,7 +151,7 @@ def setUpTestData(cls):
resourceinstance=concept,
nodegroup_id=CONCEPT_NAME_NODEGROUP,
data={
CONCEPT_NAME_CONTENT_NODE: localized_string(f"Concept {i + 1}"),
CONCEPT_NAME_CONTENT_NODE: f"Concept {i + 1}",
CONCEPT_NAME_TYPE_NODE: prefLabel_reference_dt,
CONCEPT_NAME_LANGUAGE_NODE: en_reference_dt,
},
Expand Down