From c30865cce663e09d26aaa398ad16e45f72f47475 Mon Sep 17 00:00:00 2001 From: Jason Myatt Date: Wed, 23 Oct 2019 12:13:47 -0400 Subject: [PATCH] Allow empty order numbers in django admin for Entitlements --- .../0012_allow_blank_order_number_values.py | 25 +++++++++++++++++++ common/djangoapps/entitlements/models.py | 10 +++++++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 common/djangoapps/entitlements/migrations/0012_allow_blank_order_number_values.py diff --git a/common/djangoapps/entitlements/migrations/0012_allow_blank_order_number_values.py b/common/djangoapps/entitlements/migrations/0012_allow_blank_order_number_values.py new file mode 100644 index 0000000000..f902fa64b0 --- /dev/null +++ b/common/djangoapps/entitlements/migrations/0012_allow_blank_order_number_values.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.25 on 2019-10-23 15:47 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('entitlements', '0011_historicalcourseentitlement'), + ] + + operations = [ + migrations.AlterField( + model_name='courseentitlement', + name='order_number', + field=models.CharField(blank=True, max_length=128, null=True), + ), + migrations.AlterField( + model_name='historicalcourseentitlement', + name='order_number', + field=models.CharField(blank=True, max_length=128, null=True), + ), + ] diff --git a/common/djangoapps/entitlements/models.py b/common/djangoapps/entitlements/models.py index 364d43f454..826c2a9712 100644 --- a/common/djangoapps/entitlements/models.py +++ b/common/djangoapps/entitlements/models.py @@ -172,7 +172,7 @@ class CourseEntitlement(TimeStampedModel): blank=True, on_delete=models.CASCADE, ) - order_number = models.CharField(max_length=128, null=True) + order_number = models.CharField(max_length=128, null=True, blank=True) refund_locked = models.BooleanField(default=False) _policy = models.ForeignKey(CourseEntitlementPolicy, null=True, blank=True, on_delete=models.CASCADE) @@ -449,6 +449,14 @@ class CourseEntitlement(TimeStampedModel): # Force Transaction reset with an Integrity error exception, this will revert all previous transactions raise IntegrityError + def save(self, *args, **kwargs): + """ + Null out empty strings in order_number + """ + if not self.order_number: + self.order_number = None + super(CourseEntitlement, self).save(*args, **kwargs) + @python_2_unicode_compatible class CourseEntitlementSupportDetail(TimeStampedModel):