forked from openedx-unsupported/ecommerce
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Django Oscar Upgrade to version 3.2 (openedx-unsupported#4064)
* chore: django oscar version upgrade to 3.1 * fix: changed django migration to alter price field in stockrecord model chore: updated factory dependency refactor: updated field name feat: Mgmt Command to create mobile seats for new course runs (openedx-unsupported#4046) fix: skipped a failing test. Will fix it in another ticket fix: updated method refactor: made changes as per new version of oscar refactor: updated code to make voucher name unique fix: removed white spaces fix: removed white spaces refactor: changed code as per new version of oscar refactor: updated code fix: override Product model in catalogue app fix: removed extra spaces fix: updated code fix: changes in code to pass checks fix: changes in code to pass checks * feat: add data migration to make voucher names unique * fix: removed code * refactor: updated django oscar templates * refactor: updated price field name * refactor: update price field name * chore: PR to upgrade django oscar to version 3.2 * feat: resloved reserved keywords conflict * feat: add data mmigration to make basket_lineattribute value json compatible * feat: added refund functionality * feat: add data mmigration to make order_lineattribute value json compatible --------- Co-authored-by: Muhammad Umar Khan <[email protected]>
- Loading branch information
1 parent
7174f3f
commit 8cd7c39
Showing
11 changed files
with
187 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
33 changes: 33 additions & 0 deletions
33
ecommerce/extensions/basket/migrations/0016_make_lineattribute_value_json_compatible.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# -*- coding: utf-8 -*- | ||
from django.core.paginator import Paginator | ||
from django.db import migrations | ||
|
||
|
||
def make_lineattribute_value_json_compatible(apps, schema_editor): | ||
""" | ||
Makes line attribute value json compatible. | ||
""" | ||
LineAttribute = apps.get_model("basket", "LineAttribute") | ||
attributes = LineAttribute.objects.order_by('id') | ||
paginator = Paginator(attributes, 1000) | ||
|
||
for page_number in paginator.page_range: | ||
page = paginator.page(page_number) | ||
updates = [] | ||
|
||
for obj in page.object_list: | ||
obj.value = '"{}"'.format(obj.value) | ||
updates.append(obj) | ||
|
||
LineAttribute.objects.bulk_update(updates, ['value']) | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
('basket', '0015_add_paymentintentid'), | ||
] | ||
|
||
operations = [ | ||
migrations.RunPython(make_lineattribute_value_json_compatible, migrations.RunPython.noop), | ||
] |
19 changes: 19 additions & 0 deletions
19
ecommerce/extensions/basket/migrations/0017_alter_lineattribute_value.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Generated by Django 3.2.20 on 2023-12-05 10:34 | ||
|
||
import django.core.serializers.json | ||
from django.db import migrations, models | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
('basket', '0016_make_lineattribute_value_json_compatible'), | ||
] | ||
|
||
operations = [ | ||
migrations.AlterField( | ||
model_name='lineattribute', | ||
name='value', | ||
field=models.JSONField(encoder=django.core.serializers.json.DjangoJSONEncoder, verbose_name='Value'), | ||
), | ||
] |
73 changes: 73 additions & 0 deletions
73
ecommerce/extensions/catalogue/migrations/0057_auto_20231205_1034.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
# Generated by Django 3.2.20 on 2023-12-05 10:34 | ||
|
||
from django.db import migrations, models | ||
import django.db.models.deletion | ||
import oscar.models.fields.slugfield | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
('catalogue', '0056_auto_20231108_1355'), | ||
] | ||
|
||
operations = [ | ||
migrations.AlterModelOptions( | ||
name='option', | ||
options={'ordering': ['order', 'name'], 'verbose_name': 'Option', 'verbose_name_plural': 'Options'}, | ||
), | ||
migrations.AddField( | ||
model_name='historicaloption', | ||
name='help_text', | ||
field=models.CharField(blank=True, help_text='Help text shown to the user on the add to basket form', max_length=255, null=True, verbose_name='Help text'), | ||
), | ||
migrations.AddField( | ||
model_name='historicaloption', | ||
name='option_group', | ||
field=models.ForeignKey(blank=True, db_constraint=False, help_text='Select an option group if using type "Option" or "Multi Option"', null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='catalogue.attributeoptiongroup', verbose_name='Option Group'), | ||
), | ||
migrations.AddField( | ||
model_name='historicaloption', | ||
name='order', | ||
field=models.IntegerField(blank=True, db_index=True, help_text='Controls the ordering of product options on product detail pages', null=True, verbose_name='Ordering'), | ||
), | ||
migrations.AddField( | ||
model_name='option', | ||
name='help_text', | ||
field=models.CharField(blank=True, help_text='Help text shown to the user on the add to basket form', max_length=255, null=True, verbose_name='Help text'), | ||
), | ||
migrations.AddField( | ||
model_name='option', | ||
name='option_group', | ||
field=models.ForeignKey(blank=True, help_text='Select an option group if using type "Option" or "Multi Option"', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='product_options', to='catalogue.attributeoptiongroup', verbose_name='Option Group'), | ||
), | ||
migrations.AddField( | ||
model_name='option', | ||
name='order', | ||
field=models.IntegerField(blank=True, db_index=True, help_text='Controls the ordering of product options on product detail pages', null=True, verbose_name='Ordering'), | ||
), | ||
migrations.AlterField( | ||
model_name='historicaloption', | ||
name='type', | ||
field=models.CharField(choices=[('text', 'Text'), ('integer', 'Integer'), ('boolean', 'True / False'), ('float', 'Float'), ('date', 'Date'), ('select', 'Select'), ('radio', 'Radio'), ('multi_select', 'Multi select'), ('checkbox', 'Checkbox')], default='text', max_length=255, verbose_name='Type'), | ||
), | ||
migrations.AlterField( | ||
model_name='historicalproduct', | ||
name='slug', | ||
field=oscar.models.fields.slugfield.SlugField(allow_unicode=True, max_length=255, verbose_name='Slug'), | ||
), | ||
migrations.AlterField( | ||
model_name='option', | ||
name='type', | ||
field=models.CharField(choices=[('text', 'Text'), ('integer', 'Integer'), ('boolean', 'True / False'), ('float', 'Float'), ('date', 'Date'), ('select', 'Select'), ('radio', 'Radio'), ('multi_select', 'Multi select'), ('checkbox', 'Checkbox')], default='text', max_length=255, verbose_name='Type'), | ||
), | ||
migrations.AlterField( | ||
model_name='product', | ||
name='slug', | ||
field=oscar.models.fields.slugfield.SlugField(allow_unicode=True, max_length=255, verbose_name='Slug'), | ||
), | ||
migrations.AlterUniqueTogether( | ||
name='productattribute', | ||
unique_together={('code', 'product_class')}, | ||
), | ||
] |
33 changes: 33 additions & 0 deletions
33
ecommerce/extensions/order/migrations/0027_make_lineattribute_value_json_compatible.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# -*- coding: utf-8 -*- | ||
from django.core.paginator import Paginator | ||
from django.db import migrations | ||
|
||
|
||
def make_lineattribute_value_json_compatible(apps, schema_editor): | ||
""" | ||
Makes line attribute value json compatible. | ||
""" | ||
LineAttribute = apps.get_model("order", "LineAttribute") | ||
attributes = LineAttribute.objects.order_by('id') | ||
paginator = Paginator(attributes, 1000) | ||
|
||
for page_number in paginator.page_range: | ||
page = paginator.page(page_number) | ||
updates = [] | ||
|
||
for obj in page.object_list: | ||
obj.value = '"{}"'.format(obj.value) | ||
updates.append(obj) | ||
|
||
LineAttribute.objects.bulk_update(updates, ['value']) | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
('order', '0026_auto_20231108_1355'), | ||
] | ||
|
||
operations = [ | ||
migrations.RunPython(make_lineattribute_value_json_compatible, migrations.RunPython.noop), | ||
] |
19 changes: 19 additions & 0 deletions
19
ecommerce/extensions/order/migrations/0028_alter_lineattribute_value.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Generated by Django 3.2.20 on 2023-12-05 10:34 | ||
|
||
import django.core.serializers.json | ||
from django.db import migrations, models | ||
|
||
|
||
class Migration(migrations.Migration): | ||
|
||
dependencies = [ | ||
('order', '0027_make_lineattribute_value_json_compatible'), | ||
] | ||
|
||
operations = [ | ||
migrations.AlterField( | ||
model_name='lineattribute', | ||
name='value', | ||
field=models.JSONField(encoder=django.core.serializers.json.DjangoJSONEncoder, verbose_name='Value'), | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters