From 18b3d8b135df700cd2fe360cbaa43fa410ed95b5 Mon Sep 17 00:00:00 2001
From: Helge Jung <hej@c3pb.de>
Date: Thu, 26 Dec 2024 20:26:58 +0100
Subject: [PATCH] c3nav export: use non-i18n public_url, add tags

---
 src/api/views/maps.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/api/views/maps.py b/src/api/views/maps.py
index d38a657fa..b84b3288c 100644
--- a/src/api/views/maps.py
+++ b/src/api/views/maps.py
@@ -159,7 +159,7 @@ class C3NavExportView(ConferenceSlugMixin, APIView):
                     'name': assembly.name,
                     'is_official': assembly.is_official,
                     'description': {'de': assembly.description_de, 'en': assembly.description_en},
-                    'public_url': hub_absolute('plainui:assembly', assembly_slug=assembly.slug),
+                    'public_url': hub_absolute('plainui:assembly', assembly_slug=assembly.slug, i18n=False),
                     'parent_id': assembly.parent_id,
                     'children': get_exportable_assemblies(conference=self.conference).filter(parent=assembly).values_list('slug', flat=True)
                     if assembly.is_cluster
@@ -169,6 +169,7 @@ class C3NavExportView(ConferenceSlugMixin, APIView):
                     'is_preview': assembly.location_state != Assembly.LocationState.FINAL,
                     'location': loc_data.get('point'),  # assembly.get_location_point_xy(),
                     'polygons': loc_data.get('boundaries'),  # assembly.get_location_boundaries_xy(),
+                    'tags': assembly.tags.filter(tag__is_public=True).values_list('tag__slug', flat=True),
                 }
             )
 
@@ -180,11 +181,13 @@ class C3NavExportView(ConferenceSlugMixin, APIView):
                         'slug': project.slug,
                         'name': project.name,
                         'description': {'de': project.description_de, 'en': project.description_en},
-                        'public_url': hub_absolute('plainui:project', slug=project.slug),
+                        'public_url': hub_absolute('plainui:project', slug=project.slug, i18n=False),
                         'assembly_id': str(assembly.pk),
                         'floor': assembly.get_location_floor_index(),  # TODO: allow project-specific location floor
+                        'is_preview': assembly.location_state != Assembly.LocationState.FINAL,
                         'location': loc_data.get('point'),  # TODO: allow project-specific location point
                         'location_text': project.location,
+                        'tags': project.tags.filter(tag__is_public=True).values_list('tag__slug', flat=True),
                     }
                 )
 
@@ -202,6 +205,7 @@ class C3NavExportView(ConferenceSlugMixin, APIView):
                     'floor': room.get_location_floor_index(),
                     'location': room.get_location_point_xy(),
                     'polygons': room.get_location_boundaries_xy(),
+                    'tags': room.tags.filter(tag__is_public=True).values_list('tag__slug', flat=True),
                 }
             )
 
@@ -213,6 +217,7 @@ class C3NavExportView(ConferenceSlugMixin, APIView):
                     'name': {'de': poi.name_de, 'en': poi.name_en},
                     'is_official': poi.is_official,
                     'description': {'de': poi.description_de, 'en': poi.description_en},
+                    'is_preview': False,
                     'floor': poi.get_location_floor_index(),
                     'location': poi.get_location_point_xy(),
                 }
-- 
GitLab