From edba90481e93d6be020c53412e5914fc2cc82122 Mon Sep 17 00:00:00 2001 From: Jenny Danzmayr Date: Tue, 13 Aug 2024 03:45:29 +0200 Subject: [PATCH] added SVG export to rendermap manage command --- src/c3nav/mapdata/management/commands/rendermap.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/c3nav/mapdata/management/commands/rendermap.py b/src/c3nav/mapdata/management/commands/rendermap.py index 256963f6..3bdbb0b3 100644 --- a/src/c3nav/mapdata/management/commands/rendermap.py +++ b/src/c3nav/mapdata/management/commands/rendermap.py @@ -74,7 +74,7 @@ class Command(BaseCommand): return value def add_arguments(self, parser): - parser.add_argument('filetype', type=str, choices=get_engine_filetypes(), + parser.add_argument('filetype', type=str, choices=(get_engine_filetypes() + ('svg',)), help=_('filetype to render')) parser.add_argument('--levels', default='*', type=self.levels_value, help=_('levels to render, e.g. 0,1,2 or * for all levels (default)')) @@ -125,8 +125,13 @@ class Command(BaseCommand): name = options['name'] or ('level_%s' % level.short_label) filename = settings.RENDER_ROOT / ('%s.%s' % (name, options['filetype'])) - render = renderer.render(get_engine(options['filetype']), options['theme'], center=not options['no_center']) - data = render.render(filename) + if options['filetype'] == 'svg': + render = renderer.render(get_engine('png'), options['theme'], center=not options['no_center']) + data = render.get_xml().encode() + else: + render = renderer.render(get_engine(options['filetype']), options['theme'], + center=not options['no_center']) + data = render.render(filename) if isinstance(data, tuple): other_data = data[1:] data = data[0]