From e29919ba2b7fb82a262ea5c36bebaeab219ec917 Mon Sep 17 00:00:00 2001 From: Greg Kaleka Date: Wed, 17 Dec 2025 09:30:10 -0500 Subject: [PATCH] Version download file operating system fix (#2048) --- ...0026_alter_versionfile_operating_system.py | 26 +++++++++++++++++++ versions/models.py | 15 +++++------ versions/tests/fixtures.py | 8 +++--- 3 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 versions/migrations/0026_alter_versionfile_operating_system.py diff --git a/versions/migrations/0026_alter_versionfile_operating_system.py b/versions/migrations/0026_alter_versionfile_operating_system.py new file mode 100644 index 00000000..c92822a8 --- /dev/null +++ b/versions/migrations/0026_alter_versionfile_operating_system.py @@ -0,0 +1,26 @@ +# Generated by Django 5.2.8 on 2025-12-16 18:36 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("versions", "0025_version_versions_ve_active_ae486b_idx"), + ] + + operations = [ + migrations.AlterField( + model_name="versionfile", + name="operating_system", + field=models.CharField( + choices=[ + ("Unix", "Unix"), + ("Windows", "Windows"), + ("Windows (Bin)", "Windows (Bin)"), + ], + default="Unix", + max_length=15, + ), + ), + ] diff --git a/versions/models.py b/versions/models.py index 8a5968fd..3eccc68c 100755 --- a/versions/models.py +++ b/versions/models.py @@ -212,19 +212,18 @@ class Version(models.Model): return f"release_notes_boost-{version}" -class VersionFile(models.Model): - Unix = "Unix" - Windows = "Windows" - OPERATING_SYSTEM_CHOICES = ( - (Unix, "Unix"), - (Windows, "Windows"), - ) +class OperatingSystems(models.TextChoices): + UNIX = "Unix", "Unix" + WINDOWS = "Windows", "Windows" + WINDOWS_BIN = "Windows (Bin)", "Windows (Bin)" + +class VersionFile(models.Model): version = models.ForeignKey( Version, related_name="downloads", on_delete=models.CASCADE ) operating_system = models.CharField( - choices=OPERATING_SYSTEM_CHOICES, max_length=15, default=Unix + choices=OperatingSystems, max_length=15, default=OperatingSystems.UNIX ) checksum = models.CharField(max_length=64, default=None) url = models.URLField() diff --git a/versions/tests/fixtures.py b/versions/tests/fixtures.py index fca57b34..3b399ee6 100644 --- a/versions/tests/fixtures.py +++ b/versions/tests/fixtures.py @@ -5,7 +5,7 @@ import random from model_bakery import baker -from versions.models import VersionFile +from versions.models import OperatingSystems def fake_checksum(): @@ -152,7 +152,7 @@ def full_version_one(db): baker.make( "versions.VersionFile", version=v, - operating_system=VersionFile.Unix, + operating_system=OperatingSystems.UNIX, url=f1_url, checksum=c1, ) @@ -162,7 +162,7 @@ def full_version_one(db): baker.make( "versions.VersionFile", version=v, - operating_system=VersionFile.Unix, + operating_system=OperatingSystems.UNIX, url=f2_url, checksum=c2, ) @@ -172,7 +172,7 @@ def full_version_one(db): baker.make( "versions.VersionFile", version=v, - operating_system=VersionFile.Windows, + operating_system=OperatingSystems.WINDOWS, url=f3_url, checksum=c3, )