From dc3137eee0d617737320c0e5af662d0281da8230 Mon Sep 17 00:00:00 2001 From: Gwendolyn Date: Fri, 29 Mar 2024 13:50:29 +0100 Subject: [PATCH] allow themes to not define any colors, and use them from the base theme instead --- src/c3nav/mapdata/models/theme.py | 14 +++++++------- src/c3nav/mapdata/render/theme.py | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/c3nav/mapdata/models/theme.py b/src/c3nav/mapdata/models/theme.py index a41ad6d6..eaf98066 100644 --- a/src/c3nav/mapdata/models/theme.py +++ b/src/c3nav/mapdata/models/theme.py @@ -45,13 +45,13 @@ class Theme(TitledMixin, models.Model): verbose_name=_('CSS route dots shadow color')) extra_css = models.TextField(default='', blank=True, verbose_name=_('Extra CSS')) - color_background = models.CharField(max_length=32, verbose_name=_('background color')) - color_wall_fill = models.CharField(max_length=32, verbose_name=_('wall fill color')) - color_wall_border = models.CharField(max_length=32, verbose_name=_('wall border color')) - color_door_fill = models.CharField(max_length=32, verbose_name=_('door fill color')) - color_ground_fill = models.CharField(max_length=32, verbose_name=_('ground fill color')) - color_obstacles_default_fill = models.CharField(max_length=32, verbose_name=_('default fill color for obstacles')) - color_obstacles_default_border = models.CharField(max_length=32, + color_background = models.CharField(max_length=32, blank=True, verbose_name=_('background color')) + color_wall_fill = models.CharField(max_length=32, blank=True, verbose_name=_('wall fill color')) + color_wall_border = models.CharField(max_length=32, blank=True, verbose_name=_('wall border color')) + color_door_fill = models.CharField(max_length=32, blank=True, verbose_name=_('door fill color')) + color_ground_fill = models.CharField(max_length=32, blank=True, verbose_name=_('ground fill color')) + color_obstacles_default_fill = models.CharField(max_length=32, blank=True, verbose_name=_('default fill color for obstacles')) + color_obstacles_default_border = models.CharField(max_length=32, blank=True, verbose_name=_('default border color for obstacles')) last_updated = models.DateTimeField(auto_now=True) diff --git a/src/c3nav/mapdata/render/theme.py b/src/c3nav/mapdata/render/theme.py index 1868badc..7f8f3ae5 100644 --- a/src/c3nav/mapdata/render/theme.py +++ b/src/c3nav/mapdata/render/theme.py @@ -35,14 +35,14 @@ class ThemeColorManager: for obstacle_group in ObstacleGroup.objects.filter(color__isnull=False).all() } else: - self.background = theme.color_background - self.wall_fill = theme.color_wall_fill - self.wall_border = theme.color_wall_border - self.door_fill = theme.color_door_fill - self.ground_fill = theme.color_ground_fill - self.obstacles_default_fill = theme.color_obstacles_default_fill - self.obstacles_default_border = theme.color_obstacles_default_border - self.highlight = theme.color_css_primary + self.background = theme.color_background or settings.BASE_THEME['map']['background'] + self.wall_fill = theme.color_wall_fill or settings.BASE_THEME['map']['wall_fill'] + self.wall_border = theme.color_wall_border or settings.BASE_THEME['map']['wall_border'] + self.door_fill = theme.color_door_fill or settings.BASE_THEME['map']['door_fill'] + self.ground_fill = theme.color_ground_fill or settings.BASE_THEME['map']['ground_fill'] + self.obstacles_default_fill = theme.color_obstacles_default_fill or settings.BASE_THEME['map']['obstacles_default_fill'] + self.obstacles_default_border = theme.color_obstacles_default_border or settings.BASE_THEME['map']['obstacles_default_border'] + self.highlight = theme.color_css_primary or settings.BASE_THEME['map']['highlight'] self.location_group_border_colors = { theme_location_group.location_group_id: theme_location_group.border_color for theme_location_group in theme.location_groups.all()