From c52ba6ac759ffa7822727b6e82242159861a9c67 Mon Sep 17 00:00:00 2001 From: Michael Frey Date: Wed, 21 Sep 2016 11:46:51 -0400 Subject: [PATCH] Revert "[SOL-1953] Update Commerce Configuration" --- .../migrations/0005_auto_20160831_0247.py | 25 -------- lms/djangoapps/commerce/models.py | 39 ++--------- lms/djangoapps/commerce/tests/test_models.py | 64 ------------------- lms/djangoapps/student_account/views.py | 2 +- ...0003_siteconfiguration_receipt_page_url.py | 19 ------ .../djangoapps/site_configuration/models.py | 8 --- 6 files changed, 5 insertions(+), 152 deletions(-) delete mode 100644 lms/djangoapps/commerce/migrations/0005_auto_20160831_0247.py delete mode 100644 lms/djangoapps/commerce/tests/test_models.py delete mode 100644 openedx/core/djangoapps/site_configuration/migrations/0003_siteconfiguration_receipt_page_url.py diff --git a/lms/djangoapps/commerce/migrations/0005_auto_20160831_0247.py b/lms/djangoapps/commerce/migrations/0005_auto_20160831_0247.py deleted file mode 100644 index fd94a1d798..0000000000 --- a/lms/djangoapps/commerce/migrations/0005_auto_20160831_0247.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('sites', '0001_initial'), - ('commerce', '0004_auto_20160531_0950'), - ] - - operations = [ - migrations.RemoveField( - model_name='commerceconfiguration', - name='receipt_page', - ), - migrations.AddField( - model_name='commerceconfiguration', - name='site', - field=models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, blank=True, to='sites.Site', null=True), - ), - ] diff --git a/lms/djangoapps/commerce/models.py b/lms/djangoapps/commerce/models.py index 70c2f7b9ef..586a69ade6 100644 --- a/lms/djangoapps/commerce/models.py +++ b/lms/djangoapps/commerce/models.py @@ -1,15 +1,10 @@ """ Commerce-related models. """ -from django.contrib.sites.models import Site from django.db import models from django.utils.translation import ugettext_lazy as _ from config_models.models import ConfigurationModel -from openedx.core.djangoapps.site_configuration.models import SiteConfiguration - -from logging import getLogger -logger = getLogger(__name__) # pylint: disable=invalid-name class CommerceConfiguration(ConfigurationModel): @@ -38,41 +33,15 @@ class CommerceConfiguration(ConfigurationModel): 'Specified in seconds. Enable caching by setting this to a value greater than 0.' ) ) - site = models.ForeignKey( - Site, - on_delete=models.SET_NULL, - blank=True, - null=True + receipt_page = models.CharField( + max_length=255, + default='/commerce/checkout/receipt/?orderNum=', + help_text=_('Path to order receipt page.') ) def __unicode__(self): return "Commerce configuration" - def get_receipt_page_url(self, order_number): - """ - Return absolute receipt page URL. - - Arguments: - order_number (str): Order number - - Returns: - Absolute receipt page URL, consisting of site domain and site receipt page. - """ - site = self.site - if site: - try: - return '{site_domain}{receipt_page_url}{order_number}'.format( - site_domain=site.domain, - receipt_page_url=site.configuration.receipt_page_url, # pylint: disable=no-member - order_number=order_number - ) - except AttributeError: - logger.info("Site Configuration is not enabled for site (%s).", site) - return '{default_receipt_page_url}{order_number}'.format( - default_receipt_page_url=SiteConfiguration.DEFAULT_RECEIPT_PAGE_URL, - order_number=order_number - ) - @property def is_cache_enabled(self): """Whether responses from the Ecommerce API will be cached.""" diff --git a/lms/djangoapps/commerce/tests/test_models.py b/lms/djangoapps/commerce/tests/test_models.py deleted file mode 100644 index 8c593718da..0000000000 --- a/lms/djangoapps/commerce/tests/test_models.py +++ /dev/null @@ -1,64 +0,0 @@ -""" Tests for commerce models. """ - -import ddt - -from django.test import TestCase - -from commerce.models import CommerceConfiguration -from microsite_configuration.tests.factories import SiteFactory -from openedx.core.djangoapps.site_configuration.models import SiteConfiguration -from openedx.core.djangoapps.site_configuration.tests.factories import SiteConfigurationFactory - - -@ddt.ddt -class CommerceConfigurationModelTests(TestCase): - """ Tests for the CommerceConfiguration model. """ - - def setUp(self): - """ - Create CommerceConfiguration object - """ - super(CommerceConfigurationModelTests, self).setUp() - self.site = SiteFactory() - self.order_number = "TEST_ORDER_NUMBER" - - def configure_commerce(self, is_configured, is_default_page): - """ - Helper for creating specific Commerce Configuration. - - Arguments: - is_configured (bool): Indicates whether or not the Site has Site Configuration. - is_default_page (bool): Indicates whether or not the LMS receipt page is used - - Returns: - Commerce configuration. - """ - if not is_default_page: - if is_configured: - SiteConfigurationFactory.create( - site=self.site, - receipt_page_url='receipt/page/url', - ) - - return CommerceConfiguration.objects.create( - enabled=True, - site=self.site if not is_default_page else None - ) - - @ddt.data((True, False), (False, False), (False, True)) - @ddt.unpack - def test_get_receipt_page_url_site_configured(self, is_configured, is_default_page): - commerce_configuration = self.configure_commerce(is_configured, is_default_page) - receipt_page_url = commerce_configuration.get_receipt_page_url(self.order_number) - expected_receipt_page_url = '{site_domain}{receipt_page_url}{order_number}'.format( - site_domain=self.site.domain, - receipt_page_url=self.site.configuration.receipt_page_url, # pylint: disable=no-member - order_number=self.order_number - ) if (is_configured and not is_default_page) else '{default_receipt_page_url}{order_number}'.format( - default_receipt_page_url=SiteConfiguration.DEFAULT_RECEIPT_PAGE_URL, - order_number=self.order_number - ) - self.assertEqual( - receipt_page_url, - expected_receipt_page_url - ) diff --git a/lms/djangoapps/student_account/views.py b/lms/djangoapps/student_account/views.py index 78e6f4d852..d0c52341c2 100644 --- a/lms/djangoapps/student_account/views.py +++ b/lms/djangoapps/student_account/views.py @@ -347,7 +347,7 @@ def get_user_orders(user): 'order_date': strftime_localized( date_placed.replace(tzinfo=pytz.UTC), 'SHORT_DATE' ), - 'receipt_url': commerce_configuration.get_receipt_page_url(order['number']) + 'receipt_url': commerce_configuration.receipt_page + order['number'] } user_orders.append(order_data) except KeyError: diff --git a/openedx/core/djangoapps/site_configuration/migrations/0003_siteconfiguration_receipt_page_url.py b/openedx/core/djangoapps/site_configuration/migrations/0003_siteconfiguration_receipt_page_url.py deleted file mode 100644 index 35eb9a8cda..0000000000 --- a/openedx/core/djangoapps/site_configuration/migrations/0003_siteconfiguration_receipt_page_url.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('site_configuration', '0002_auto_20160720_0231'), - ] - - operations = [ - migrations.AddField( - model_name='siteconfiguration', - name='receipt_page_url', - field=models.CharField(default=b'/commerce/checkout/receipt/?orderNum=', help_text='Path to order receipt page.', max_length=255), - ), - ] diff --git a/openedx/core/djangoapps/site_configuration/models.py b/openedx/core/djangoapps/site_configuration/models.py index e9c5d3a5ff..61c05eb044 100644 --- a/openedx/core/djangoapps/site_configuration/models.py +++ b/openedx/core/djangoapps/site_configuration/models.py @@ -7,7 +7,6 @@ from django.db import models from django.contrib.sites.models import Site from django.db.models.signals import post_save from django.dispatch import receiver -from django.utils.translation import ugettext_lazy as _ from django_extensions.db.models import TimeStampedModel from jsonfield.fields import JSONField @@ -26,8 +25,6 @@ class SiteConfiguration(models.Model): site (OneToOneField): one to one field relating each configuration to a single site values (JSONField): json field to store configurations for a site """ - DEFAULT_RECEIPT_PAGE_URL = '/commerce/checkout/receipt/?orderNum=' - site = models.OneToOneField(Site, related_name='configuration') enabled = models.BooleanField(default=False, verbose_name="Enabled") values = JSONField( @@ -35,11 +32,6 @@ class SiteConfiguration(models.Model): blank=True, load_kwargs={'object_pairs_hook': collections.OrderedDict} ) - receipt_page_url = models.CharField( - max_length=255, - default=DEFAULT_RECEIPT_PAGE_URL, - help_text=_('Path to order receipt page.') - ) def __unicode__(self): return u"".format(site=self.site)