diff --git a/lms/djangoapps/shoppingcart/README.rst b/lms/djangoapps/shoppingcart/README.rst deleted file mode 100644 index a977526937..0000000000 --- a/lms/djangoapps/shoppingcart/README.rst +++ /dev/null @@ -1,17 +0,0 @@ -Status: Maintenance - -Responsibilities -================ -The Shopping Cart is an older implementation of e-commerce related functionality. - -Direction: Deprecate -==================== -This app is replaced by functionality in the `ecommerce service`_. New functionality should not be added here. Effort is needed to determine who the existing clients are so they can be updated and this app can be removed. This app is in a similar situation to the ```lms/djangoapps/commerce``` app. - -.. _ecommerce service: https://github.com/edx/ecommerce - -Glossary -======== - -More Documentation -================== diff --git a/lms/djangoapps/shoppingcart/__init__.py b/lms/djangoapps/shoppingcart/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/lms/djangoapps/shoppingcart/migrations/0001_initial.py b/lms/djangoapps/shoppingcart/migrations/0001_initial.py deleted file mode 100644 index 4987b8a120..0000000000 --- a/lms/djangoapps/shoppingcart/migrations/0001_initial.py +++ /dev/null @@ -1,286 +0,0 @@ -import django.db.models.deletion -import django.utils.timezone -import model_utils.fields -from django.conf import settings -from django.db import migrations, models -from opaque_keys.edx.django.models import CourseKeyField - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('student', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='Coupon', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('code', models.CharField(max_length=32, db_index=True)), - ('description', models.CharField(max_length=255, null=True, blank=True)), - ('course_id', CourseKeyField(max_length=255)), - ('percentage_discount', models.IntegerField(default=0)), - ('created_at', models.DateTimeField(auto_now_add=True)), - ('is_active', models.BooleanField(default=True)), - ('expiration_date', models.DateTimeField(null=True, blank=True)), - ('created_by', models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)), - ], - ), - migrations.CreateModel( - name='CouponRedemption', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('coupon', models.ForeignKey(to='shoppingcart.Coupon', on_delete=models.CASCADE)), - ], - ), - migrations.CreateModel( - name='CourseRegCodeItemAnnotation', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('course_id', CourseKeyField(unique=True, max_length=128, db_index=True)), - ('annotation', models.TextField(null=True)), - ], - ), - migrations.CreateModel( - name='CourseRegistrationCode', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('code', models.CharField(unique=True, max_length=32, db_index=True)), - ('course_id', CourseKeyField(max_length=255, db_index=True)), - ('created_at', models.DateTimeField(auto_now_add=True)), - ('mode_slug', models.CharField(max_length=100, null=True)), - ('is_valid', models.BooleanField(default=True)), - ('created_by', models.ForeignKey(related_name='created_by_user', to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)), - ], - ), - migrations.CreateModel( - name='DonationConfiguration', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('change_date', models.DateTimeField(auto_now_add=True, verbose_name='Change date')), - ('enabled', models.BooleanField(default=False, verbose_name='Enabled')), - ('changed_by', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, editable=False, to=settings.AUTH_USER_MODEL, null=True, verbose_name='Changed by')), - ], - options={ - 'ordering': ('-change_date',), - 'abstract': False, - }, - ), - migrations.CreateModel( - name='Invoice', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)), - ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)), - ('company_name', models.CharField(max_length=255, db_index=True)), - ('company_contact_name', models.CharField(max_length=255)), - ('company_contact_email', models.CharField(max_length=255)), - ('recipient_name', models.CharField(max_length=255)), - ('recipient_email', models.CharField(max_length=255)), - ('address_line_1', models.CharField(max_length=255)), - ('address_line_2', models.CharField(max_length=255, null=True, blank=True)), - ('address_line_3', models.CharField(max_length=255, null=True, blank=True)), - ('city', models.CharField(max_length=255, null=True)), - ('state', models.CharField(max_length=255, null=True)), - ('zip', models.CharField(max_length=15, null=True)), - ('country', models.CharField(max_length=64, null=True)), - ('total_amount', models.FloatField()), - ('course_id', CourseKeyField(max_length=255, db_index=True)), - ('internal_reference', models.CharField(help_text='Internal reference code for this invoice.', max_length=255, null=True, blank=True)), - ('customer_reference_number', models.CharField(help_text="Customer's reference code for this invoice.", max_length=63, null=True, blank=True)), - ('is_valid', models.BooleanField(default=True)), - ], - ), - migrations.CreateModel( - name='InvoiceHistory', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('timestamp', models.DateTimeField(auto_now_add=True, db_index=True)), - ('snapshot', models.TextField(blank=True)), - ('invoice', models.ForeignKey(to='shoppingcart.Invoice', on_delete=models.CASCADE)), - ], - options={ - 'get_latest_by': 'timestamp', - }, - ), - migrations.CreateModel( - name='InvoiceItem', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)), - ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)), - ('qty', models.IntegerField(default=1, help_text='The number of items sold.')), - ('unit_price', models.DecimalField(default=0.0, help_text='The price per item sold, including discounts.', max_digits=30, decimal_places=2)), - ('currency', models.CharField(default='usd', help_text='Lower-case ISO currency codes', max_length=8)), - ], - ), - migrations.CreateModel( - name='InvoiceTransaction', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)), - ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)), - ('amount', models.DecimalField(default=0.0, help_text='The amount of the transaction. Use positive amounts for payments and negative amounts for refunds.', max_digits=30, decimal_places=2)), - ('currency', models.CharField(default='usd', help_text='Lower-case ISO currency codes', max_length=8)), - ('comments', models.TextField(help_text='Optional: provide additional information for this transaction', null=True, blank=True)), - ('status', models.CharField(default='started', help_text="The status of the payment or refund. 'started' means that payment is expected, but money has not yet been transferred. 'completed' means that the payment or refund was received. 'cancelled' means that payment or refund was expected, but was cancelled before money was transferred. ", max_length=32, choices=[('started', 'started'), ('completed', 'completed'), ('cancelled', 'cancelled')])), - ('created_by', models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)), - ('invoice', models.ForeignKey(to='shoppingcart.Invoice', on_delete=models.CASCADE)), - ('last_modified_by', models.ForeignKey(related_name='last_modified_by_user', to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)), - ], - ), - migrations.CreateModel( - name='Order', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('currency', models.CharField(default='usd', max_length=8)), - ('status', models.CharField(default='cart', max_length=32, choices=[('cart', 'cart'), ('paying', 'paying'), ('purchased', 'purchased'), ('refunded', 'refunded'), ('defunct-cart', 'defunct-cart'), ('defunct-paying', 'defunct-paying')])), - ('purchase_time', models.DateTimeField(null=True, blank=True)), - ('refunded_time', models.DateTimeField(null=True, blank=True)), - ('bill_to_first', models.CharField(max_length=64, blank=True)), - ('bill_to_last', models.CharField(max_length=64, blank=True)), - ('bill_to_street1', models.CharField(max_length=128, blank=True)), - ('bill_to_street2', models.CharField(max_length=128, blank=True)), - ('bill_to_city', models.CharField(max_length=64, blank=True)), - ('bill_to_state', models.CharField(max_length=8, blank=True)), - ('bill_to_postalcode', models.CharField(max_length=16, blank=True)), - ('bill_to_country', models.CharField(max_length=64, blank=True)), - ('bill_to_ccnum', models.CharField(max_length=8, blank=True)), - ('bill_to_cardtype', models.CharField(max_length=32, blank=True)), - ('processor_reply_dump', models.TextField(blank=True)), - ('company_name', models.CharField(max_length=255, null=True, blank=True)), - ('company_contact_name', models.CharField(max_length=255, null=True, blank=True)), - ('company_contact_email', models.CharField(max_length=255, null=True, blank=True)), - ('recipient_name', models.CharField(max_length=255, null=True, blank=True)), - ('recipient_email', models.CharField(max_length=255, null=True, blank=True)), - ('customer_reference_number', models.CharField(max_length=63, null=True, blank=True)), - ('order_type', models.CharField(default='personal', max_length=32, choices=[('personal', 'personal'), ('business', 'business')])), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)), - ], - ), - migrations.CreateModel( - name='OrderItem', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)), - ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)), - ('status', models.CharField(default='cart', max_length=32, db_index=True, choices=[('cart', 'cart'), ('paying', 'paying'), ('purchased', 'purchased'), ('refunded', 'refunded'), ('defunct-cart', 'defunct-cart'), ('defunct-paying', 'defunct-paying')])), - ('qty', models.IntegerField(default=1)), - ('unit_cost', models.DecimalField(default=0.0, max_digits=30, decimal_places=2)), - ('list_price', models.DecimalField(null=True, max_digits=30, decimal_places=2)), - ('line_desc', models.CharField(default='Misc. Item', max_length=1024)), - ('currency', models.CharField(default='usd', max_length=8)), - ('fulfilled_time', models.DateTimeField(null=True, db_index=True)), - ('refund_requested_time', models.DateTimeField(null=True, db_index=True)), - ('service_fee', models.DecimalField(default=0.0, max_digits=30, decimal_places=2)), - ('report_comments', models.TextField(default='')), - ], - ), - migrations.CreateModel( - name='PaidCourseRegistrationAnnotation', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('course_id', CourseKeyField(unique=True, max_length=128, db_index=True)), - ('annotation', models.TextField(null=True)), - ], - ), - migrations.CreateModel( - name='RegistrationCodeRedemption', - fields=[ - ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('redeemed_at', models.DateTimeField(auto_now_add=True, null=True)), - ('course_enrollment', models.ForeignKey(to='student.CourseEnrollment', null=True, on_delete=models.CASCADE)), - ('order', models.ForeignKey(to='shoppingcart.Order', null=True, on_delete=models.CASCADE)), - ('redeemed_by', models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)), - ('registration_code', models.ForeignKey(to='shoppingcart.CourseRegistrationCode', on_delete=models.CASCADE)), - ], - ), - migrations.CreateModel( - name='CertificateItem', - fields=[ - ('orderitem_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='shoppingcart.OrderItem', on_delete=models.CASCADE)), - ('course_id', CourseKeyField(max_length=128, db_index=True)), - ('mode', models.SlugField()), - ('course_enrollment', models.ForeignKey(to='student.CourseEnrollment', on_delete=models.CASCADE)), - ], - bases=('shoppingcart.orderitem',), - ), - migrations.CreateModel( - name='CourseRegCodeItem', - fields=[ - ('orderitem_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='shoppingcart.OrderItem', on_delete=models.CASCADE)), - ('course_id', CourseKeyField(max_length=128, db_index=True)), - ('mode', models.SlugField(default=b'honor')), - ], - bases=('shoppingcart.orderitem',), - ), - migrations.CreateModel( - name='CourseRegistrationCodeInvoiceItem', - fields=[ - ('invoiceitem_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='shoppingcart.InvoiceItem', on_delete=models.CASCADE)), - ('course_id', CourseKeyField(max_length=128, db_index=True)), - ], - bases=('shoppingcart.invoiceitem',), - ), - migrations.CreateModel( - name='Donation', - fields=[ - ('orderitem_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='shoppingcart.OrderItem', on_delete=models.CASCADE)), - ('donation_type', models.CharField(default='general', max_length=32, choices=[('general', 'A general donation'), ('course', 'A donation to a particular course')])), - ('course_id', CourseKeyField(max_length=255, db_index=True)), - ], - bases=('shoppingcart.orderitem',), - ), - migrations.CreateModel( - name='PaidCourseRegistration', - fields=[ - ('orderitem_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='shoppingcart.OrderItem', on_delete=models.CASCADE)), - ('course_id', CourseKeyField(max_length=128, db_index=True)), - ('mode', models.SlugField(default=b'honor')), - ('course_enrollment', models.ForeignKey(to='student.CourseEnrollment', null=True, on_delete=models.CASCADE)), - ], - bases=('shoppingcart.orderitem',), - ), - migrations.AddField( - model_name='orderitem', - name='order', - field=models.ForeignKey(to='shoppingcart.Order', on_delete=models.CASCADE), - ), - migrations.AddField( - model_name='orderitem', - name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE), - ), - migrations.AddField( - model_name='invoiceitem', - name='invoice', - field=models.ForeignKey(to='shoppingcart.Invoice', on_delete=models.CASCADE), - ), - migrations.AddField( - model_name='courseregistrationcode', - name='invoice', - field=models.ForeignKey(to='shoppingcart.Invoice', null=True, on_delete=models.CASCADE), - ), - migrations.AddField( - model_name='courseregistrationcode', - name='order', - field=models.ForeignKey(related_name='purchase_order', to='shoppingcart.Order', null=True, on_delete=models.CASCADE), - ), - migrations.AddField( - model_name='couponredemption', - name='order', - field=models.ForeignKey(to='shoppingcart.Order', on_delete=models.CASCADE), - ), - migrations.AddField( - model_name='couponredemption', - name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE), - ), - migrations.AddField( - model_name='courseregistrationcode', - name='invoice_item', - field=models.ForeignKey(to='shoppingcart.CourseRegistrationCodeInvoiceItem', null=True, on_delete=models.CASCADE), - ), - ] diff --git a/lms/djangoapps/shoppingcart/migrations/0002_auto_20151208_1034.py b/lms/djangoapps/shoppingcart/migrations/0002_auto_20151208_1034.py deleted file mode 100644 index 28110125ac..0000000000 --- a/lms/djangoapps/shoppingcart/migrations/0002_auto_20151208_1034.py +++ /dev/null @@ -1,21 +0,0 @@ -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('shoppingcart', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='courseregcodeitem', - name='mode', - field=models.SlugField(default=b'audit'), - ), - migrations.AlterField( - model_name='paidcourseregistration', - name='mode', - field=models.SlugField(default=b'audit'), - ), - ] diff --git a/lms/djangoapps/shoppingcart/migrations/0003_auto_20151217_0958.py b/lms/djangoapps/shoppingcart/migrations/0003_auto_20151217_0958.py deleted file mode 100644 index 5fa93922af..0000000000 --- a/lms/djangoapps/shoppingcart/migrations/0003_auto_20151217_0958.py +++ /dev/null @@ -1,21 +0,0 @@ -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('shoppingcart', '0002_auto_20151208_1034'), - ] - - operations = [ - migrations.AlterField( - model_name='courseregcodeitem', - name='mode', - field=models.SlugField(default='honor'), - ), - migrations.AlterField( - model_name='paidcourseregistration', - name='mode', - field=models.SlugField(default='honor'), - ), - ] diff --git a/lms/djangoapps/shoppingcart/migrations/0004_change_meta_options.py b/lms/djangoapps/shoppingcart/migrations/0004_change_meta_options.py deleted file mode 100644 index fb9890b3ac..0000000000 --- a/lms/djangoapps/shoppingcart/migrations/0004_change_meta_options.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 1.11.13 on 2018-05-14 20:37 - - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('shoppingcart', '0003_auto_20151217_0958'), - ] - - operations = [ - migrations.AlterModelOptions( - name='invoiceitem', - options={'base_manager_name': 'objects'}, - ), - migrations.AlterModelOptions( - name='orderitem', - options={'base_manager_name': 'objects'}, - ), - ] diff --git a/lms/djangoapps/shoppingcart/migrations/0005_drop_tables.py b/lms/djangoapps/shoppingcart/migrations/0005_drop_tables.py deleted file mode 100644 index 7826bc5b4c..0000000000 --- a/lms/djangoapps/shoppingcart/migrations/0005_drop_tables.py +++ /dev/null @@ -1,179 +0,0 @@ -# Generated by Django 2.2.17 on 2020-12-02 16:31 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('shoppingcart', '0004_change_meta_options'), - ] - - operations = [ - migrations.RemoveField( - model_name='certificateitem', - name='course_enrollment', - ), - migrations.RemoveField( - model_name='certificateitem', - name='orderitem_ptr', - ), - migrations.RemoveField( - model_name='coupon', - name='created_by', - ), - migrations.RemoveField( - model_name='couponredemption', - name='coupon', - ), - migrations.RemoveField( - model_name='couponredemption', - name='order', - ), - migrations.RemoveField( - model_name='couponredemption', - name='user', - ), - migrations.RemoveField( - model_name='courseregcodeitem', - name='orderitem_ptr', - ), - migrations.DeleteModel( - name='CourseRegCodeItemAnnotation', - ), - migrations.RemoveField( - model_name='courseregistrationcode', - name='created_by', - ), - migrations.RemoveField( - model_name='courseregistrationcode', - name='invoice', - ), - migrations.RemoveField( - model_name='courseregistrationcode', - name='invoice_item', - ), - migrations.RemoveField( - model_name='courseregistrationcode', - name='order', - ), - migrations.RemoveField( - model_name='courseregistrationcodeinvoiceitem', - name='invoiceitem_ptr', - ), - migrations.RemoveField( - model_name='donation', - name='orderitem_ptr', - ), - migrations.RemoveField( - model_name='donationconfiguration', - name='changed_by', - ), - migrations.RemoveField( - model_name='invoicehistory', - name='invoice', - ), - migrations.RemoveField( - model_name='invoiceitem', - name='invoice', - ), - migrations.RemoveField( - model_name='invoicetransaction', - name='created_by', - ), - migrations.RemoveField( - model_name='invoicetransaction', - name='invoice', - ), - migrations.RemoveField( - model_name='invoicetransaction', - name='last_modified_by', - ), - migrations.RemoveField( - model_name='order', - name='user', - ), - migrations.RemoveField( - model_name='orderitem', - name='order', - ), - migrations.RemoveField( - model_name='orderitem', - name='user', - ), - migrations.RemoveField( - model_name='paidcourseregistration', - name='course_enrollment', - ), - migrations.RemoveField( - model_name='paidcourseregistration', - name='orderitem_ptr', - ), - migrations.DeleteModel( - name='PaidCourseRegistrationAnnotation', - ), - migrations.RemoveField( - model_name='registrationcoderedemption', - name='course_enrollment', - ), - migrations.RemoveField( - model_name='registrationcoderedemption', - name='order', - ), - migrations.RemoveField( - model_name='registrationcoderedemption', - name='redeemed_by', - ), - migrations.RemoveField( - model_name='registrationcoderedemption', - name='registration_code', - ), - migrations.DeleteModel( - name='CertificateItem', - ), - migrations.DeleteModel( - name='Coupon', - ), - migrations.DeleteModel( - name='CouponRedemption', - ), - migrations.DeleteModel( - name='CourseRegCodeItem', - ), - migrations.DeleteModel( - name='CourseRegistrationCode', - ), - migrations.DeleteModel( - name='CourseRegistrationCodeInvoiceItem', - ), - migrations.DeleteModel( - name='Donation', - ), - migrations.DeleteModel( - name='DonationConfiguration', - ), - migrations.DeleteModel( - name='Invoice', - ), - migrations.DeleteModel( - name='InvoiceHistory', - ), - migrations.DeleteModel( - name='InvoiceItem', - ), - migrations.DeleteModel( - name='InvoiceTransaction', - ), - migrations.DeleteModel( - name='Order', - ), - migrations.DeleteModel( - name='OrderItem', - ), - migrations.DeleteModel( - name='PaidCourseRegistration', - ), - migrations.DeleteModel( - name='RegistrationCodeRedemption', - ), - ] diff --git a/lms/djangoapps/shoppingcart/migrations/__init__.py b/lms/djangoapps/shoppingcart/migrations/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/lms/envs/common.py b/lms/envs/common.py index cb6e327271..528e501066 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -2895,9 +2895,6 @@ INSTALLED_APPS = [ 'openedx.core.djangoapps.user_api', - # Shopping cart - 'lms.djangoapps.shoppingcart', - # Different Course Modes 'common.djangoapps.course_modes.apps.CourseModesConfig',