Skip to content

Commit f5b6d83

Browse files
matusdrobuliak66mrnicegyu11
authored andcommitted
♻️ licensed_resources ordering based on priority (🗃️) (ITISFoundation#7241)
on behalf of matus
1 parent 3b000e2 commit f5b6d83

File tree

8 files changed

+170
-106
lines changed

8 files changed

+170
-106
lines changed

packages/models-library/src/models_library/api_schemas_webserver/licensed_items.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,17 +141,13 @@ def from_domain_model(cls, item: LicensedItem) -> Self:
141141
exclude_unset=True,
142142
),
143143
"licensed_resources": [
144-
_ItisVipResourceRestData(**x)
145-
for x in sorted(
146-
item.licensed_resources,
147-
key=lambda x: datetime.strptime(
148-
x["source"]["features"]["date"], "%Y-%m-%d"
149-
),
150-
reverse=True,
151-
)
144+
_ItisVipResourceRestData(**x) for x in item.licensed_resources
152145
],
153146
"category_id": item.licensed_resources[0]["category_id"],
154147
"category_display": item.licensed_resources[0]["category_display"],
148+
"terms_of_use_url": item.licensed_resources[0].get(
149+
"terms_of_use_url", None
150+
),
155151
}
156152
)
157153

packages/models-library/src/models_library/licenses.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from datetime import datetime
1+
from datetime import date, datetime
22
from enum import auto
33
from typing import Annotated, Any, NamedTuple, NewType, NotRequired, TypeAlias, cast
44
from uuid import UUID
@@ -47,7 +47,7 @@ class FeaturesDict(TypedDict):
4747
age: NotRequired[str]
4848
weight: NotRequired[str]
4949
height: NotRequired[str]
50-
date: str
50+
date: date
5151
ethnicity: NotRequired[str]
5252
functionality: NotRequired[str]
5353

@@ -102,6 +102,7 @@ class LicensedResourceDB(BaseModel):
102102
licensed_resource_name: str
103103
licensed_resource_type: LicensedResourceType
104104
licensed_resource_data: dict[str, Any] | None
105+
priority: int
105106

106107
# states
107108
created: datetime
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
"""licensed_resources add priority column
2+
3+
Revision ID: 5e43b5ec7604
4+
Revises: e8ffc0c96336
5+
Create Date: 2025-02-18 12:24:49.105989+00:00
6+
7+
"""
8+
import sqlalchemy as sa
9+
from alembic import op
10+
11+
# revision identifiers, used by Alembic.
12+
revision = "5e43b5ec7604"
13+
down_revision = "e8ffc0c96336"
14+
branch_labels = None
15+
depends_on = None
16+
17+
18+
def upgrade():
19+
# ### commands auto generated by Alembic - please adjust! ###
20+
op.add_column(
21+
"licensed_resources",
22+
sa.Column("priority", sa.SmallInteger(), server_default="0", nullable=False),
23+
)
24+
# ### end Alembic commands ###
25+
26+
27+
def downgrade():
28+
# ### commands auto generated by Alembic - please adjust! ###
29+
op.drop_column("licensed_resources", "priority")
30+
# ### end Alembic commands ###

packages/postgres-database/src/simcore_postgres_database/models/licensed_resources.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,13 @@
4747
nullable=True,
4848
doc="Resource metadata. Used for read-only purposes",
4949
),
50+
sa.Column(
51+
"priority",
52+
sa.SmallInteger,
53+
nullable=False,
54+
server_default="0",
55+
doc="Used for sorting 0 (first) > 1 (second) > 2 (third) (ex. if we want to manually adjust how it is presented in the Market)",
56+
),
5057
column_created_datetime(timezone=True),
5158
column_modified_datetime(timezone=True),
5259
column_trashed_datetime("licensed_resources"),

packages/pytest-simcore/src/pytest_simcore/helpers/faker_factories.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ def random_itis_vip_available_download_item(
488488
f"name: {fake.name()} Right Hand," # w/o spaces
489489
f" version: V{fake.pyint()}.0, " # w/ x2 spaces
490490
f"sex: Male, age: 8 years," # w/o spaces
491-
f"date: {fake.date()}, " # w/ x1 spaces
491+
f"date: {fake.date()} , " # w/ x2 spaces prefix, x1 space suffix
492492
f"ethnicity: Caucasian, functionality: {features_functionality} "
493493
"}"
494494
)

0 commit comments

Comments
 (0)