Skip to content

Commit

Permalink
(PC-29215)[API] feat: split films, series, cinema search group
Browse files Browse the repository at this point in the history
  • Loading branch information
thconte committed Sep 5, 2024
1 parent 3438a38 commit 0b3524f
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 29 deletions.
64 changes: 37 additions & 27 deletions api/src/pcapi/core/categories/subcategories_v2.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,17 +192,17 @@ def get_show_nodes() -> list[ShowGenre]:
SEARCH_GROUP_ARTS_LOISIRS_CREATIFS = SearchGroup(
technical_name="ARTS_LOISIRS_CREATIFS",
label="Arts & loisirs créatifs",
position=5,
position=6,
)
SEARCH_GROUP_CARTES_JEUNES = SearchGroup(
technical_name="CARTES_JEUNES",
label="Cartes jeunes",
position=11,
position=12,
)
SEARCH_GROUP_CD_VINYLE_MUSIQUE_EN_LIGNE = SearchGroup(
technical_name="CD_VINYLE_MUSIQUE_EN_LIGNE",
label="CD, vinyles, musique en ligne",
position=4,
position=5,
)
SEARCH_GROUP_CONCERTS_FESTIVALS = SearchGroup(
technical_name="CONCERTS_FESTIVALS",
Expand All @@ -212,17 +212,27 @@ def get_show_nodes() -> list[ShowGenre]:
SEARCH_GROUP_EVENEMENTS_EN_LIGNE = SearchGroup(
technical_name="EVENEMENTS_EN_LIGNE",
label="Évènements en ligne",
position=12,
position=14,
)
SEARCH_GROUP_FILMS_SERIES_CINEMA = SearchGroup(
technical_name="FILMS_SERIES_CINEMA",
label="Cinéma, films et séries",
position=13,
position=2,
)
SEARCH_GROUP_CINEMA = SearchGroup(
technical_name="CINEMA",
label="Cinéma",
position=2,
)
SEARCH_GROUP_FILMS_DOCUMENTAIRES_SERIES = SearchGroup(
technical_name="FILMS_DOCUMENTAIRES_SERIES",
label="Films, documentaires et séries",
position=3,
)
SEARCH_GROUP_INSTRUMENTS = SearchGroup(
technical_name="INSTRUMENTS",
label="Instruments de musique",
position=2,
position=10,
)
SEARCH_GROUP_JEUX_JEUX_VIDEOS = SearchGroup(
technical_name="JEUX_JEUX_VIDEOS",
Expand All @@ -232,17 +242,17 @@ def get_show_nodes() -> list[ShowGenre]:
SEARCH_GROUP_LIVRES = SearchGroup(
technical_name="LIVRES",
label="Livres",
position=8,
position=4,
)
SEARCH_GROUP_MEDIA_PRESSE = SearchGroup(
technical_name="MEDIA_PRESSE",
label="Médias & presse",
position=3,
position=11,
)
SEARCH_GROUP_MUSEES_VISITES_CULTURELLES = SearchGroup(
technical_name="MUSEES_VISITES_CULTURELLES",
label="Musées & visites culturelles",
position=10,
position=8,
)
SEARCH_GROUP_NONE = SearchGroup(
technical_name="NONE",
Expand All @@ -252,12 +262,12 @@ def get_show_nodes() -> list[ShowGenre]:
SEARCH_GROUP_RENCONTRES_CONFERENCES = SearchGroup(
technical_name="RENCONTRES_CONFERENCES",
label="Conférences & rencontres",
position=7,
position=13,
)
SEARCH_GROUP_SPECTACLES = SearchGroup(
technical_name="SPECTACLES",
label="Spectacles",
position=6,
position=7,
)
# endregion

Expand Down Expand Up @@ -295,7 +305,7 @@ def get_show_nodes() -> list[ShowGenre]:
NATIVE_CATEGORY_CARTES_CINEMA = NativeCategory(
technical_name="CARTES_CINEMA",
label="Cartes cinéma",
parents=[SEARCH_GROUP_FILMS_SERIES_CINEMA.id],
parents=[SEARCH_GROUP_FILMS_SERIES_CINEMA.id, SEARCH_GROUP_CINEMA.id],
)
NATIVE_CATEGORY_CD = NativeCategory(
technical_name="CD",
Expand Down Expand Up @@ -330,7 +340,7 @@ def get_show_nodes() -> list[ShowGenre]:
NATIVE_CATEGORY_DVD_BLU_RAY = NativeCategory(
technical_name="DVD_BLU_RAY",
label="DVD, Blu-Ray",
parents=[SEARCH_GROUP_FILMS_SERIES_CINEMA.id],
parents=[SEARCH_GROUP_FILMS_SERIES_CINEMA.id, SEARCH_GROUP_CINEMA.id],
)
NATIVE_CATEGORY_ESCAPE_GAMES = NativeCategory(
technical_name="ESCAPE_GAMES",
Expand All @@ -340,7 +350,7 @@ def get_show_nodes() -> list[ShowGenre]:
NATIVE_CATEGORY_EVENEMENTS_CINEMA = NativeCategory(
technical_name="EVENEMENTS_CINEMA",
label="Evènements cinéma",
parents=[SEARCH_GROUP_FILMS_SERIES_CINEMA.id],
parents=[SEARCH_GROUP_FILMS_SERIES_CINEMA.id, SEARCH_GROUP_CINEMA.id],
)
NATIVE_CATEGORY_EVENEMENTS_PATRIMOINE = NativeCategory(
technical_name="EVENEMENTS_PATRIMOINE",
Expand All @@ -360,7 +370,7 @@ def get_show_nodes() -> list[ShowGenre]:
NATIVE_CATEGORY_FILMS_SERIES_EN_LIGNE = NativeCategory(
technical_name="FILMS_SERIES_EN_LIGNE",
label="Films, séries en ligne",
parents=[SEARCH_GROUP_FILMS_SERIES_CINEMA.id],
parents=[SEARCH_GROUP_FILMS_SERIES_CINEMA.id, SEARCH_GROUP_FILMS_DOCUMENTAIRES_SERIES.id],
)
NATIVE_CATEGORY_JEUX_EN_LIGNE = NativeCategory(
technical_name="JEUX_EN_LIGNE",
Expand Down Expand Up @@ -456,7 +466,7 @@ def get_show_nodes() -> list[ShowGenre]:
NATIVE_CATEGORY_SEANCES_DE_CINEMA = NativeCategory(
technical_name="SEANCES_DE_CINEMA",
label="Séances de cinéma",
parents=[SEARCH_GROUP_FILMS_SERIES_CINEMA.id],
parents=[SEARCH_GROUP_FILMS_SERIES_CINEMA.id, SEARCH_GROUP_CINEMA.id],
)
NATIVE_CATEGORY_SPECTACLES_ENREGISTRES = NativeCategory(
technical_name="SPECTACLES_ENREGISTRES",
Expand Down Expand Up @@ -667,7 +677,7 @@ def is_online_only(self) -> bool:
native_category=NATIVE_CATEGORY_DVD_BLU_RAY,
pro_label="Support physique (DVD, Blu-ray...)",
app_label="Support physique (DVD, Blu-ray...)",
search_group_name=SEARCH_GROUP_FILMS_SERIES_CINEMA.id,
search_group_name=SEARCH_GROUP_FILMS_DOCUMENTAIRES_SERIES.id,
homepage_label_name=HomepageLabels.FILMS.name,
is_event=False,
conditional_fields={ExtraDataFieldEnum.EAN.value: FieldCondition(is_required_in_external_form=True)},
Expand Down Expand Up @@ -703,7 +713,7 @@ def is_online_only(self) -> bool:
native_category=NATIVE_CATEGORY_FILMS_SERIES_EN_LIGNE,
pro_label="Vidéo à la demande",
app_label="Vidéo à la demande",
search_group_name=SEARCH_GROUP_FILMS_SERIES_CINEMA.id,
search_group_name=SEARCH_GROUP_FILMS_DOCUMENTAIRES_SERIES.id,
homepage_label_name=HomepageLabels.FILMS.name,
is_event=False,
conditional_fields={},
Expand All @@ -722,7 +732,7 @@ def is_online_only(self) -> bool:
native_category=NATIVE_CATEGORY_FILMS_SERIES_EN_LIGNE,
pro_label="Abonnement plateforme streaming",
app_label="Abonnement plateforme streaming",
search_group_name=SEARCH_GROUP_FILMS_SERIES_CINEMA.id,
search_group_name=SEARCH_GROUP_FILMS_DOCUMENTAIRES_SERIES.id,
homepage_label_name=HomepageLabels.FILMS.name,
is_event=False,
conditional_fields={},
Expand All @@ -741,7 +751,7 @@ def is_online_only(self) -> bool:
native_category=NATIVE_CATEGORY_FILMS_SERIES_EN_LIGNE,
pro_label="Autre support numérique",
app_label="Autre support numérique",
search_group_name=SEARCH_GROUP_FILMS_SERIES_CINEMA.id,
search_group_name=SEARCH_GROUP_FILMS_DOCUMENTAIRES_SERIES.id,
homepage_label_name=HomepageLabels.FILMS.name,
is_event=False,
conditional_fields={},
Expand All @@ -762,7 +772,7 @@ def is_online_only(self) -> bool:
native_category=NATIVE_CATEGORY_CARTES_CINEMA,
pro_label="Carte cinéma multi-séances",
app_label="Carte cinéma multi-séances",
search_group_name=SEARCH_GROUP_FILMS_SERIES_CINEMA.id,
search_group_name=SEARCH_GROUP_CINEMA.id,
homepage_label_name=HomepageLabels.CINEMA.name,
is_event=False,
conditional_fields={},
Expand All @@ -780,7 +790,7 @@ def is_online_only(self) -> bool:
native_category=NATIVE_CATEGORY_CARTES_CINEMA,
pro_label="Carte cinéma illimité",
app_label="Carte cinéma illimité",
search_group_name=SEARCH_GROUP_FILMS_SERIES_CINEMA.id,
search_group_name=SEARCH_GROUP_CINEMA.id,
homepage_label_name=HomepageLabels.CINEMA.name,
is_event=False,
conditional_fields={},
Expand All @@ -798,7 +808,7 @@ def is_online_only(self) -> bool:
native_category=NATIVE_CATEGORY_SEANCES_DE_CINEMA,
pro_label="Séance de cinéma",
app_label="Séance de cinéma",
search_group_name=SEARCH_GROUP_FILMS_SERIES_CINEMA.id,
search_group_name=SEARCH_GROUP_CINEMA.id,
homepage_label_name=HomepageLabels.CINEMA.name,
is_event=True,
conditional_fields={
Expand All @@ -821,7 +831,7 @@ def is_online_only(self) -> bool:
native_category=NATIVE_CATEGORY_EVENEMENTS_CINEMA,
pro_label="Évènement cinématographique",
app_label="Évènement cinéma",
search_group_name=SEARCH_GROUP_FILMS_SERIES_CINEMA.id,
search_group_name=SEARCH_GROUP_CINEMA.id,
homepage_label_name=HomepageLabels.CINEMA.name,
is_event=True,
conditional_fields={
Expand All @@ -844,7 +854,7 @@ def is_online_only(self) -> bool:
native_category=NATIVE_CATEGORY_EVENEMENTS_CINEMA,
pro_label="Festival de cinéma",
app_label="Festival de cinéma",
search_group_name=SEARCH_GROUP_FILMS_SERIES_CINEMA.id,
search_group_name=SEARCH_GROUP_CINEMA.id,
homepage_label_name=HomepageLabels.CINEMA.name,
is_event=True,
conditional_fields={
Expand All @@ -867,7 +877,7 @@ def is_online_only(self) -> bool:
native_category=NATIVE_CATEGORY_SEANCES_DE_CINEMA,
pro_label="Cinéma vente à distance",
app_label="Cinéma",
search_group_name=SEARCH_GROUP_FILMS_SERIES_CINEMA.id,
search_group_name=SEARCH_GROUP_CINEMA.id,
homepage_label_name=HomepageLabels.CINEMA.name,
is_event=False,
conditional_fields={
Expand All @@ -891,7 +901,7 @@ def is_online_only(self) -> bool:
native_category=NATIVE_CATEGORY_SEANCES_DE_CINEMA,
pro_label="Cinéma plein air",
app_label="Cinéma plein air",
search_group_name=SEARCH_GROUP_FILMS_SERIES_CINEMA.id,
search_group_name=SEARCH_GROUP_CINEMA.id,
homepage_label_name=HomepageLabels.CINEMA.name,
is_event=True,
conditional_fields={
Expand Down
2 changes: 2 additions & 0 deletions api/tests/routes/native/openapi_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -1756,6 +1756,8 @@ def test_public_api(client):
"CONCERTS_FESTIVALS",
"EVENEMENTS_EN_LIGNE",
"FILMS_SERIES_CINEMA",
"CINEMA",
"FILMS_DOCUMENTAIRES_SERIES",
"INSTRUMENTS",
"JEUX_JEUX_VIDEOS",
"LIVRES",
Expand Down
2 changes: 1 addition & 1 deletion api/tests/routes/native/v1/offers_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -2339,7 +2339,7 @@ def test_get_subcategories_v2(self, client):
assert found_subcategory_ids == expected_subcategory_ids

found_search_group_names = {x["name"] for x in response.json["searchGroups"]}
expected_search_group_names = {x.search_group_name for x in subcategories.ALL_SUBCATEGORIES}
expected_search_group_names = {x.name for x in subcategories.SEARCH_GROUPS}
assert found_search_group_names == expected_search_group_names

found_home_labels = {x["name"] for x in response.json["homepageLabels"]}
Expand Down
2 changes: 1 addition & 1 deletion api/tests/routes/pro/get_categories_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def test_get_categories(self, app, client):
"categoryId": "CINEMA",
"proLabel": "Cinéma plein air",
"appLabel": "Cinéma plein air",
"searchGroupName": "FILMS_SERIES_CINEMA",
"searchGroupName": "CINEMA",
"isEvent": True,
"conditionalFields": ["author", "visa", "stageDirector"],
"canExpire": False,
Expand Down

0 comments on commit 0b3524f

Please sign in to comment.