From 7da368c736c83889d4498244d6d98bb809923367 Mon Sep 17 00:00:00 2001 From: Luis Alvergue Date: Thu, 7 Nov 2024 17:02:37 +0000 Subject: [PATCH] feat: add a property for a small and large agency logo --- ...ncy_logo_large_transitagency_logo_small.py | 32 +++++++++++++++++++ benefits/core/models.py | 17 ++++++++++ 2 files changed, 49 insertions(+) create mode 100644 benefits/core/migrations/0031_transitagency_logo_large_transitagency_logo_small.py diff --git a/benefits/core/migrations/0031_transitagency_logo_large_transitagency_logo_small.py b/benefits/core/migrations/0031_transitagency_logo_large_transitagency_logo_small.py new file mode 100644 index 0000000000..888733a9d9 --- /dev/null +++ b/benefits/core/migrations/0031_transitagency_logo_large_transitagency_logo_small.py @@ -0,0 +1,32 @@ +# Generated by Django 5.1.2 on 2024-11-07 16:51 + +import benefits.core.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("core", "0030_enrollmentevent_extra_claims"), + ] + + operations = [ + migrations.AddField( + model_name="transitagency", + name="logo_large", + field=models.ImageField( + default=None, + help_text="The large version of the transit agency's logo.", + upload_to=benefits.core.models.agency_logo_large, + ), + ), + migrations.AddField( + model_name="transitagency", + name="logo_small", + field=models.ImageField( + default=None, + help_text="The small version of the transit agency's logo.", + upload_to=benefits.core.models.agency_logo_small, + ), + ), + ] diff --git a/benefits/core/models.py b/benefits/core/models.py index 3b8b930797..c82acd609d 100644 --- a/benefits/core/models.py +++ b/benefits/core/models.py @@ -5,6 +5,7 @@ from functools import cached_property import importlib import logging +import os import uuid from django.conf import settings @@ -126,6 +127,16 @@ def __str__(self): return self.name +def agency_logo_small(instance, filename): + base, ext = os.path.splitext(filename) + return f"static/img/agencies/{instance.slug}-sm" + ext + + +def agency_logo_large(instance, filename): + base, ext = os.path.splitext(filename) + return f"static/img/agencies/{instance.slug}-lg" + ext + + class TransitAgency(models.Model): """An agency offering transit service.""" @@ -191,6 +202,12 @@ class TransitAgency(models.Model): help_text="The group of users who are allowed to do in-person eligibility verification and enrollment.", related_name="+", ) + logo_large = models.ImageField( + default=None, upload_to=agency_logo_large, help_text="The large version of the transit agency's logo." + ) + logo_small = models.ImageField( + default=None, upload_to=agency_logo_small, help_text="The small version of the transit agency's logo." + ) def __str__(self): return self.long_name