New migrations

This commit is contained in:
M.Ravi 2023-12-06 20:41:05 +05:30
parent 894c7ace25
commit 0a3d2a5b3a
15 changed files with 799 additions and 532 deletions

View file

@ -1,4 +1,4 @@
# Generated by Django 4.2.7 on 2023-12-02 12:45
# Generated by Django 4.2.7 on 2023-12-06 11:31
import cms.models.fields
import datacenterlight.cms_models
@ -14,9 +14,9 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.FILER_IMAGE_MODEL),
('cms', '0022_auto_20180620_1551'),
('sites', '0002_alter_domain_unique'),
('cms', '0022_auto_20180620_1551'),
migrations.swappable_dependency(settings.FILER_IMAGE_MODEL),
]
operations = [
@ -58,204 +58,204 @@ class Migration(migrations.Migration):
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLFooterPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('copyright_label', models.CharField(blank=True, default='ungleich glarus ag', help_text='Name of the company alongside the copyright year', max_length=100)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLLinkPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('target', models.CharField(help_text='Url or #id to navigate to', max_length=100)),
('text', models.CharField(help_text='Text for the menu item', max_length=50)),
('title', models.CharField(blank=True, help_text='Optional title text, that will be shown when a user hovers over the link', max_length=100, null=True)),
('separator', models.BooleanField(default=False, help_text='Select to include a separator after the previous link')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLNavbarDropdownPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('target', models.CharField(blank=True, help_text='Optional Url or #id to navigate on click', max_length=100, null=True)),
('text', models.CharField(help_text='Text for the dropdown toggle', max_length=50)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLSectionIconPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('fontawesome_icon_name', models.CharField(help_text='Name of the fontawesome icon to use. <a href="https://fontawesome.com/v4.7.0/icons/" target="_blank">Refer docs.</a>', max_length=30)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLSectionPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('heading', models.CharField(blank=True, help_text='An optional heading for the Section', max_length=100, null=True)),
('content', djangocms_text_ckeditor.fields.HTMLField()),
('text_direction', models.CharField(choices=[('left', 'Left'), ('right', 'Right')], default=True, help_text='The alignment of text in the section', max_length=10)),
('html_id', models.SlugField(blank=True, help_text='An optional html id for the Section. Required to set as target of a link on page', null=True)),
('plain_heading', models.BooleanField(default=False, help_text='Select to keep the heading style simpler.')),
('center_on_mobile', models.BooleanField(default=False, help_text='Select to center align content on small screens.')),
('background_gradient', models.BooleanField(default=False, help_text='Select to add a gradient background to the section.')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='StripePlan',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('stripe_plan_id', models.CharField(max_length=256, null=True)),
('stripe_plan_name', models.CharField(default='', max_length=512, null=True)),
('amount', models.PositiveIntegerField(default=0)),
('interval', models.CharField(default='', max_length=128, null=True)),
],
),
migrations.CreateModel(
name='VMPricing',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255, unique=True)),
('vat_inclusive', models.BooleanField(default=True)),
('vat_percentage', models.DecimalField(blank=True, decimal_places=5, default=0, max_digits=7)),
('cores_unit_price', models.DecimalField(decimal_places=5, default=0, max_digits=7)),
('ram_unit_price', models.DecimalField(decimal_places=5, default=0, max_digits=7)),
('ssd_unit_price', models.DecimalField(decimal_places=5, default=0, max_digits=7)),
('hdd_unit_price', models.DecimalField(decimal_places=6, default=0, max_digits=7)),
('discount_name', models.CharField(blank=True, max_length=255, null=True)),
('discount_amount', models.DecimalField(decimal_places=2, default=0, max_digits=6)),
('stripe_coupon_id', models.CharField(blank=True, max_length=255, null=True)),
],
),
migrations.CreateModel(
name='VMTemplate',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=50)),
('opennebula_vm_template_id', models.IntegerField()),
('vm_type', models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50)),
],
),
migrations.CreateModel(
name='DCLSectionPromoPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('heading', models.CharField(blank=True, help_text='An optional heading for the Promo Section', max_length=100, null=True)),
('subheading', models.CharField(blank=True, help_text='An optional subheading for the Promo Section', max_length=200, null=True)),
('content', djangocms_text_ckeditor.fields.HTMLField()),
('html_id', models.SlugField(blank=True, help_text='An optional html id for the Section. Required to set as target of a link on page', null=True)),
('plain_heading', models.BooleanField(default=False, help_text='Select to keep the heading style simpler.')),
('text_center', models.BooleanField(default=False, help_text='Select to center align content on small screens.')),
('background_image', filer.fields.image.FilerImageField(blank=True, help_text='Optional background image for the Promo Section', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_section_promo_promo', to=settings.FILER_IMAGE_MODEL)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLSectionImagePluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('caption', models.CharField(blank=True, help_text='Optional caption for the image.', max_length=100, null=True)),
('image', filer.fields.image.FilerImageField(help_text='Image file to be used in section. Add multiple plugins to add more than one image', on_delete=django.db.models.deletion.CASCADE, to=settings.FILER_IMAGE_MODEL)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLNavbarPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('logo_url', models.URLField(blank=True, max_length=300, null=True)),
('language_dropdown', models.BooleanField(default=True, help_text='Select to include the language selection dropdown.')),
('show_login_option', models.BooleanField(default=True, help_text='Uncheck this if you do not want to show login/dashboard.')),
('show_non_transparent_navbar_always', models.BooleanField(default=False, help_text='Check this if you want to show non transparent navbar only.(Useful when we want to setup a simple page)')),
('logo_dark', filer.fields.image.FilerImageField(blank=True, help_text='Logo to be used on white navbar', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_navbar_logo_dark', to=settings.FILER_IMAGE_MODEL)),
('logo_light', filer.fields.image.FilerImageField(blank=True, help_text='Logo to be used on transparent navbar', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_navbar_logo_light', to=settings.FILER_IMAGE_MODEL)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLCalculatorPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('vm_type', models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50)),
('vm_templates_to_show', datacenterlight.cms_models.MultipleChoiceArrayField(base_field=models.CharField(blank=True, max_length=256), blank=True, default=list, help_text='Recommended: If you wish to show all templates of the corresponding VM Type (public/ipv6only), please do not select any of the items in the above field. This will allow any new template(s) added in the backend to be automatically listed in this calculator instance.', size=None)),
('default_selected_template', models.CharField(default='Devuan Ascii', help_text='Write the name of the template that you need selected as default when the calculator loads', max_length=128, null=True)),
('enable_512mb_ram', models.BooleanField(default=False)),
('pricing', models.ForeignKey(help_text='Choose a pricing that will be associated with this Calculator', on_delete=django.db.models.deletion.CASCADE, related_name='dcl_custom_pricing_vm_pricing', to='datacenterlight.vmpricing')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLBannerItemPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('content', djangocms_text_ckeditor.fields.HTMLField()),
('banner_text', djangocms_text_ckeditor.fields.HTMLField(blank=True, help_text='Optional text to be shown as banner in other half.', max_length=100, null=True)),
('text_direction', models.CharField(choices=[('left', 'Left'), ('right', 'Right')], default=True, help_text='The alignment of text in the section', max_length=10)),
('banner_image', filer.fields.image.FilerImageField(blank=True, help_text='Optional image to be used in the banner in other half.', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.FILER_IMAGE_MODEL)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='CMSFaviconExtension',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('favicon', models.CharField(blank=True, max_length=100, null=True)),
('extended_object', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='cms.page')),
('public_extension', models.OneToOneField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='draft_extension', to='datacenterlight.cmsfaviconextension')),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='CMSIntegration',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(default='default', help_text='A unique name for the Integration. This name will be used to fetch the Integration into pages', max_length=100)),
('calculator_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-calculator-placeholder+', slotname='datacenterlight_calculator', to='cms.placeholder')),
('domain', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sites.site')),
('footer_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-footer-placeholder+', slotname='datacenterlight_footer', to='cms.placeholder')),
('navbar_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-navbar-placeholder+', slotname='datacenterlight_navbar', to='cms.placeholder')),
],
options={
'unique_together': {('name', 'domain')},
},
),
#migrations.CreateModel(
# name='DCLFooterPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('copyright_label', models.CharField(blank=True, default='ungleich glarus ag', help_text='Name of the company alongside the copyright year', max_length=100)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLLinkPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('target', models.CharField(help_text='Url or #id to navigate to', max_length=100)),
# ('text', models.CharField(help_text='Text for the menu item', max_length=50)),
# ('title', models.CharField(blank=True, help_text='Optional title text, that will be shown when a user hovers over the link', max_length=100, null=True)),
# ('separator', models.BooleanField(default=False, help_text='Select to include a separator after the previous link')),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLNavbarDropdownPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('target', models.CharField(blank=True, help_text='Optional Url or #id to navigate on click', max_length=100, null=True)),
# ('text', models.CharField(help_text='Text for the dropdown toggle', max_length=50)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLSectionIconPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('fontawesome_icon_name', models.CharField(help_text='Name of the fontawesome icon to use. <a href="https://fontawesome.com/v4.7.0/icons/" target="_blank">Refer docs.</a>', max_length=30)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLSectionPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('heading', models.CharField(blank=True, help_text='An optional heading for the Section', max_length=100, null=True)),
# ('content', djangocms_text_ckeditor.fields.HTMLField()),
# ('text_direction', models.CharField(choices=[('left', 'Left'), ('right', 'Right')], default=True, help_text='The alignment of text in the section', max_length=10)),
# ('html_id', models.SlugField(blank=True, help_text='An optional html id for the Section. Required to set as target of a link on page', null=True)),
# ('plain_heading', models.BooleanField(default=False, help_text='Select to keep the heading style simpler.')),
# ('center_on_mobile', models.BooleanField(default=False, help_text='Select to center align content on small screens.')),
# ('background_gradient', models.BooleanField(default=False, help_text='Select to add a gradient background to the section.')),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='StripePlan',
# fields=[
# ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
# ('stripe_plan_id', models.CharField(max_length=256, null=True)),
# ('stripe_plan_name', models.CharField(default='', max_length=512, null=True)),
# ('amount', models.PositiveIntegerField(default=0)),
# ('interval', models.CharField(default='', max_length=128, null=True)),
# ],
#),
#migrations.CreateModel(
# name='VMPricing',
# fields=[
# ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
# ('name', models.CharField(max_length=255, unique=True)),
# ('vat_inclusive', models.BooleanField(default=True)),
# ('vat_percentage', models.DecimalField(blank=True, decimal_places=5, default=0, max_digits=7)),
# ('cores_unit_price', models.DecimalField(decimal_places=5, default=0, max_digits=7)),
# ('ram_unit_price', models.DecimalField(decimal_places=5, default=0, max_digits=7)),
# ('ssd_unit_price', models.DecimalField(decimal_places=5, default=0, max_digits=7)),
# ('hdd_unit_price', models.DecimalField(decimal_places=6, default=0, max_digits=7)),
# ('discount_name', models.CharField(blank=True, max_length=255, null=True)),
# ('discount_amount', models.DecimalField(decimal_places=2, default=0, max_digits=6)),
# ('stripe_coupon_id', models.CharField(blank=True, max_length=255, null=True)),
# ],
#),
#migrations.CreateModel(
# name='VMTemplate',
# fields=[
# ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
# ('name', models.CharField(max_length=50)),
# ('opennebula_vm_template_id', models.IntegerField()),
# ('vm_type', models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50)),
# ],
#),
#migrations.CreateModel(
# name='DCLSectionPromoPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('heading', models.CharField(blank=True, help_text='An optional heading for the Promo Section', max_length=100, null=True)),
# ('subheading', models.CharField(blank=True, help_text='An optional subheading for the Promo Section', max_length=200, null=True)),
# ('content', djangocms_text_ckeditor.fields.HTMLField()),
# ('html_id', models.SlugField(blank=True, help_text='An optional html id for the Section. Required to set as target of a link on page', null=True)),
# ('plain_heading', models.BooleanField(default=False, help_text='Select to keep the heading style simpler.')),
# ('text_center', models.BooleanField(default=False, help_text='Select to center align content on small screens.')),
# ('background_image', filer.fields.image.FilerImageField(blank=True, help_text='Optional background image for the Promo Section', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_section_promo_promo', to=settings.FILER_IMAGE_MODEL)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLSectionImagePluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('caption', models.CharField(blank=True, help_text='Optional caption for the image.', max_length=100, null=True)),
# ('image', filer.fields.image.FilerImageField(help_text='Image file to be used in section. Add multiple plugins to add more than one image', on_delete=django.db.models.deletion.CASCADE, to=settings.FILER_IMAGE_MODEL)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLNavbarPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('logo_url', models.URLField(blank=True, max_length=300, null=True)),
# ('language_dropdown', models.BooleanField(default=True, help_text='Select to include the language selection dropdown.')),
# ('show_login_option', models.BooleanField(default=True, help_text='Uncheck this if you do not want to show login/dashboard.')),
# ('show_non_transparent_navbar_always', models.BooleanField(default=False, help_text='Check this if you want to show non transparent navbar only.(Useful when we want to setup a simple page)')),
# ('logo_dark', filer.fields.image.FilerImageField(blank=True, help_text='Logo to be used on white navbar', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_navbar_logo_dark', to=settings.FILER_IMAGE_MODEL)),
# ('logo_light', filer.fields.image.FilerImageField(blank=True, help_text='Logo to be used on transparent navbar', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_navbar_logo_light', to=settings.FILER_IMAGE_MODEL)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLCalculatorPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('vm_type', models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50)),
# ('vm_templates_to_show', datacenterlight.cms_models.MultipleChoiceArrayField(base_field=models.CharField(blank=True, max_length=256), blank=True, default=list, help_text='Recommended: If you wish to show all templates of the corresponding VM Type (public/ipv6only), please do not select any of the items in the above field. This will allow any new template(s) added in the backend to be automatically listed in this calculator instance.', size=None)),
# ('default_selected_template', models.CharField(default='Devuan Ascii', help_text='Write the name of the template that you need selected as default when the calculator loads', max_length=128, null=True)),
# ('enable_512mb_ram', models.BooleanField(default=False)),
# ('pricing', models.ForeignKey(help_text='Choose a pricing that will be associated with this Calculator', on_delete=django.db.models.deletion.CASCADE, related_name='dcl_custom_pricing_vm_pricing', to='datacenterlight.vmpricing')),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLBannerItemPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('content', djangocms_text_ckeditor.fields.HTMLField()),
# ('banner_text', djangocms_text_ckeditor.fields.HTMLField(blank=True, help_text='Optional text to be shown as banner in other half.', max_length=100, null=True)),
# ('text_direction', models.CharField(choices=[('left', 'Left'), ('right', 'Right')], default=True, help_text='The alignment of text in the section', max_length=10)),
# ('banner_image', filer.fields.image.FilerImageField(blank=True, help_text='Optional image to be used in the banner in other half.', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.FILER_IMAGE_MODEL)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='CMSFaviconExtension',
# fields=[
# ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
# ('favicon', models.CharField(blank=True, max_length=100, null=True)),
# ('extended_object', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='cms.page')),
# ('public_extension', models.OneToOneField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='draft_extension', to='datacenterlight.cmsfaviconextension')),
# ],
# options={
# 'abstract': False,
# },
#),
#migrations.CreateModel(
# name='CMSIntegration',
# fields=[
# ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
# ('name', models.CharField(default='default', help_text='A unique name for the Integration. This name will be used to fetch the Integration into pages', max_length=100)),
# ('calculator_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-calculator-placeholder+', slotname='datacenterlight_calculator', to='cms.placeholder')),
# ('domain', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sites.site')),
# ('footer_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-footer-placeholder+', slotname='datacenterlight_footer', to='cms.placeholder')),
# ('navbar_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-navbar-placeholder+', slotname='datacenterlight_navbar', to='cms.placeholder')),
# ],
# options={
# 'unique_together': {('name', 'domain')},
# },
#),
]

View file

@ -0,0 +1,222 @@
# Generated by Django 4.2.7 on 2023-12-06 11:40
import cms.models.fields
import datacenterlight.cms_models
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import djangocms_text_ckeditor.fields
import filer.fields.image
class Migration(migrations.Migration):
dependencies = [
('sites', '0002_alter_domain_unique'),
('cms', '0022_auto_20180620_1551'),
migrations.swappable_dependency(settings.FILER_IMAGE_MODEL),
('datacenterlight', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='DCLFooterPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('copyright_label', models.CharField(blank=True, default='ungleich glarus ag', help_text='Name of the company alongside the copyright year', max_length=100)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLLinkPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('target', models.CharField(help_text='Url or #id to navigate to', max_length=100)),
('text', models.CharField(help_text='Text for the menu item', max_length=50)),
('title', models.CharField(blank=True, help_text='Optional title text, that will be shown when a user hovers over the link', max_length=100, null=True)),
('separator', models.BooleanField(default=False, help_text='Select to include a separator after the previous link')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLNavbarDropdownPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('target', models.CharField(blank=True, help_text='Optional Url or #id to navigate on click', max_length=100, null=True)),
('text', models.CharField(help_text='Text for the dropdown toggle', max_length=50)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLSectionIconPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('fontawesome_icon_name', models.CharField(help_text='Name of the fontawesome icon to use. <a href="https://fontawesome.com/v4.7.0/icons/" target="_blank">Refer docs.</a>', max_length=30)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLSectionPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('heading', models.CharField(blank=True, help_text='An optional heading for the Section', max_length=100, null=True)),
('content', djangocms_text_ckeditor.fields.HTMLField()),
('text_direction', models.CharField(choices=[('left', 'Left'), ('right', 'Right')], default=True, help_text='The alignment of text in the section', max_length=10)),
('html_id', models.SlugField(blank=True, help_text='An optional html id for the Section. Required to set as target of a link on page', null=True)),
('plain_heading', models.BooleanField(default=False, help_text='Select to keep the heading style simpler.')),
('center_on_mobile', models.BooleanField(default=False, help_text='Select to center align content on small screens.')),
('background_gradient', models.BooleanField(default=False, help_text='Select to add a gradient background to the section.')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='StripePlan',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('stripe_plan_id', models.CharField(max_length=256, null=True)),
('stripe_plan_name', models.CharField(default='', max_length=512, null=True)),
('amount', models.PositiveIntegerField(default=0)),
('interval', models.CharField(default='', max_length=128, null=True)),
],
),
migrations.CreateModel(
name='VMPricing',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=255, unique=True)),
('vat_inclusive', models.BooleanField(default=True)),
('vat_percentage', models.DecimalField(blank=True, decimal_places=5, default=0, max_digits=7)),
('cores_unit_price', models.DecimalField(decimal_places=5, default=0, max_digits=7)),
('ram_unit_price', models.DecimalField(decimal_places=5, default=0, max_digits=7)),
('ssd_unit_price', models.DecimalField(decimal_places=5, default=0, max_digits=7)),
('hdd_unit_price', models.DecimalField(decimal_places=6, default=0, max_digits=7)),
('discount_name', models.CharField(blank=True, max_length=255, null=True)),
('discount_amount', models.DecimalField(decimal_places=2, default=0, max_digits=6)),
('stripe_coupon_id', models.CharField(blank=True, max_length=255, null=True)),
],
),
#migrations.CreateModel(
# name='VMTemplate',
# fields=[
# ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
# ('name', models.CharField(max_length=50)),
# ('opennebula_vm_template_id', models.IntegerField()),
# ('vm_type', models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50)),
# ],
#),
#migrations.CreateModel(
# name='DCLSectionPromoPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('heading', models.CharField(blank=True, help_text='An optional heading for the Promo Section', max_length=100, null=True)),
# ('subheading', models.CharField(blank=True, help_text='An optional subheading for the Promo Section', max_length=200, null=True)),
# ('content', djangocms_text_ckeditor.fields.HTMLField()),
# ('html_id', models.SlugField(blank=True, help_text='An optional html id for the Section. Required to set as target of a link on page', null=True)),
# ('plain_heading', models.BooleanField(default=False, help_text='Select to keep the heading style simpler.')),
# ('text_center', models.BooleanField(default=False, help_text='Select to center align content on small screens.')),
# ('background_image', filer.fields.image.FilerImageField(blank=True, help_text='Optional background image for the Promo Section', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_section_promo_promo', to=settings.FILER_IMAGE_MODEL)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLSectionImagePluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('caption', models.CharField(blank=True, help_text='Optional caption for the image.', max_length=100, null=True)),
# ('image', filer.fields.image.FilerImageField(help_text='Image file to be used in section. Add multiple plugins to add more than one image', on_delete=django.db.models.deletion.CASCADE, to=settings.FILER_IMAGE_MODEL)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLNavbarPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('logo_url', models.URLField(blank=True, max_length=300, null=True)),
# ('language_dropdown', models.BooleanField(default=True, help_text='Select to include the language selection dropdown.')),
# ('show_login_option', models.BooleanField(default=True, help_text='Uncheck this if you do not want to show login/dashboard.')),
# ('show_non_transparent_navbar_always', models.BooleanField(default=False, help_text='Check this if you want to show non transparent navbar only.(Useful when we want to setup a simple page)')),
# ('logo_dark', filer.fields.image.FilerImageField(blank=True, help_text='Logo to be used on white navbar', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_navbar_logo_dark', to=settings.FILER_IMAGE_MODEL)),
# ('logo_light', filer.fields.image.FilerImageField(blank=True, help_text='Logo to be used on transparent navbar', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_navbar_logo_light', to=settings.FILER_IMAGE_MODEL)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLCalculatorPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('vm_type', models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50)),
# ('vm_templates_to_show', datacenterlight.cms_models.MultipleChoiceArrayField(base_field=models.CharField(blank=True, max_length=256), blank=True, default=list, help_text='Recommended: If you wish to show all templates of the corresponding VM Type (public/ipv6only), please do not select any of the items in the above field. This will allow any new template(s) added in the backend to be automatically listed in this calculator instance.', size=None)),
# ('default_selected_template', models.CharField(default='Devuan Ascii', help_text='Write the name of the template that you need selected as default when the calculator loads', max_length=128, null=True)),
# ('enable_512mb_ram', models.BooleanField(default=False)),
# ('pricing', models.ForeignKey(help_text='Choose a pricing that will be associated with this Calculator', on_delete=django.db.models.deletion.CASCADE, related_name='dcl_custom_pricing_vm_pricing', to='datacenterlight.vmpricing')),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLBannerItemPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('content', djangocms_text_ckeditor.fields.HTMLField()),
# ('banner_text', djangocms_text_ckeditor.fields.HTMLField(blank=True, help_text='Optional text to be shown as banner in other half.', max_length=100, null=True)),
# ('text_direction', models.CharField(choices=[('left', 'Left'), ('right', 'Right')], default=True, help_text='The alignment of text in the section', max_length=10)),
# ('banner_image', filer.fields.image.FilerImageField(blank=True, help_text='Optional image to be used in the banner in other half.', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.FILER_IMAGE_MODEL)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='CMSFaviconExtension',
# fields=[
# ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
# ('favicon', models.CharField(blank=True, max_length=100, null=True)),
# ('extended_object', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='cms.page')),
# ('public_extension', models.OneToOneField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='draft_extension', to='datacenterlight.cmsfaviconextension')),
# ],
# options={
# 'abstract': False,
# },
#),
#migrations.CreateModel(
# name='CMSIntegration',
# fields=[
# ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
# ('name', models.CharField(default='default', help_text='A unique name for the Integration. This name will be used to fetch the Integration into pages', max_length=100)),
# ('calculator_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-calculator-placeholder+', slotname='datacenterlight_calculator', to='cms.placeholder')),
# ('domain', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sites.site')),
# ('footer_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-footer-placeholder+', slotname='datacenterlight_footer', to='cms.placeholder')),
# ('navbar_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-navbar-placeholder+', slotname='datacenterlight_navbar', to='cms.placeholder')),
# ],
# options={
# 'unique_together': {('name', 'domain')},
# },
#),
]

View file

@ -0,0 +1,131 @@
# Generated by Django 4.2.7 on 2023-12-06 11:41
import cms.models.fields
import datacenterlight.cms_models
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import djangocms_text_ckeditor.fields
import filer.fields.image
class Migration(migrations.Migration):
dependencies = [
('sites', '0002_alter_domain_unique'),
('cms', '0022_auto_20180620_1551'),
migrations.swappable_dependency(settings.FILER_IMAGE_MODEL),
('datacenterlight', '0002_dclfooterpluginmodel_dcllinkpluginmodel_and_more'),
]
operations = [
migrations.CreateModel(
name='VMTemplate',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=50)),
('opennebula_vm_template_id', models.IntegerField()),
('vm_type', models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50)),
],
),
migrations.CreateModel(
name='DCLSectionPromoPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('heading', models.CharField(blank=True, help_text='An optional heading for the Promo Section', max_length=100, null=True)),
('subheading', models.CharField(blank=True, help_text='An optional subheading for the Promo Section', max_length=200, null=True)),
('content', djangocms_text_ckeditor.fields.HTMLField()),
('html_id', models.SlugField(blank=True, help_text='An optional html id for the Section. Required to set as target of a link on page', null=True)),
('plain_heading', models.BooleanField(default=False, help_text='Select to keep the heading style simpler.')),
('text_center', models.BooleanField(default=False, help_text='Select to center align content on small screens.')),
('background_image', filer.fields.image.FilerImageField(blank=True, help_text='Optional background image for the Promo Section', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_section_promo_promo', to=settings.FILER_IMAGE_MODEL)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='DCLSectionImagePluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('caption', models.CharField(blank=True, help_text='Optional caption for the image.', max_length=100, null=True)),
('image', filer.fields.image.FilerImageField(help_text='Image file to be used in section. Add multiple plugins to add more than one image', on_delete=django.db.models.deletion.CASCADE, to=settings.FILER_IMAGE_MODEL)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
#migrations.CreateModel(
# name='DCLNavbarPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('logo_url', models.URLField(blank=True, max_length=300, null=True)),
# ('language_dropdown', models.BooleanField(default=True, help_text='Select to include the language selection dropdown.')),
# ('show_login_option', models.BooleanField(default=True, help_text='Uncheck this if you do not want to show login/dashboard.')),
# ('show_non_transparent_navbar_always', models.BooleanField(default=False, help_text='Check this if you want to show non transparent navbar only.(Useful when we want to setup a simple page)')),
# ('logo_dark', filer.fields.image.FilerImageField(blank=True, help_text='Logo to be used on white navbar', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_navbar_logo_dark', to=settings.FILER_IMAGE_MODEL)),
# ('logo_light', filer.fields.image.FilerImageField(blank=True, help_text='Logo to be used on transparent navbar', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_navbar_logo_light', to=settings.FILER_IMAGE_MODEL)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLCalculatorPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('vm_type', models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50)),
# ('vm_templates_to_show', datacenterlight.cms_models.MultipleChoiceArrayField(base_field=models.CharField(blank=True, max_length=256), blank=True, default=list, help_text='Recommended: If you wish to show all templates of the corresponding VM Type (public/ipv6only), please do not select any of the items in the above field. This will allow any new template(s) added in the backend to be automatically listed in this calculator instance.', size=None)),
# ('default_selected_template', models.CharField(default='Devuan Ascii', help_text='Write the name of the template that you need selected as default when the calculator loads', max_length=128, null=True)),
# ('enable_512mb_ram', models.BooleanField(default=False)),
# ('pricing', models.ForeignKey(help_text='Choose a pricing that will be associated with this Calculator', on_delete=django.db.models.deletion.CASCADE, related_name='dcl_custom_pricing_vm_pricing', to='datacenterlight.vmpricing')),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLBannerItemPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('content', djangocms_text_ckeditor.fields.HTMLField()),
# ('banner_text', djangocms_text_ckeditor.fields.HTMLField(blank=True, help_text='Optional text to be shown as banner in other half.', max_length=100, null=True)),
# ('text_direction', models.CharField(choices=[('left', 'Left'), ('right', 'Right')], default=True, help_text='The alignment of text in the section', max_length=10)),
# ('banner_image', filer.fields.image.FilerImageField(blank=True, help_text='Optional image to be used in the banner in other half.', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.FILER_IMAGE_MODEL)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='CMSFaviconExtension',
# fields=[
# ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
# ('favicon', models.CharField(blank=True, max_length=100, null=True)),
# ('extended_object', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='cms.page')),
# ('public_extension', models.OneToOneField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='draft_extension', to='datacenterlight.cmsfaviconextension')),
# ],
# options={
# 'abstract': False,
# },
#),
#migrations.CreateModel(
# name='CMSIntegration',
# fields=[
# ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
# ('name', models.CharField(default='default', help_text='A unique name for the Integration. This name will be used to fetch the Integration into pages', max_length=100)),
# ('calculator_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-calculator-placeholder+', slotname='datacenterlight_calculator', to='cms.placeholder')),
# ('domain', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sites.site')),
# ('footer_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-footer-placeholder+', slotname='datacenterlight_footer', to='cms.placeholder')),
# ('navbar_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-navbar-placeholder+', slotname='datacenterlight_navbar', to='cms.placeholder')),
# ],
# options={
# 'unique_together': {('name', 'domain')},
# },
#),
]

View file

@ -0,0 +1,93 @@
# Generated by Django 4.2.7 on 2023-12-06 11:43
import cms.models.fields
import datacenterlight.cms_models
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import djangocms_text_ckeditor.fields
import filer.fields.image
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.FILER_IMAGE_MODEL),
('cms', '0022_auto_20180620_1551'),
('sites', '0002_alter_domain_unique'),
('datacenterlight', '0003_vmtemplate_dclsectionpromopluginmodel_and_more'),
]
operations = [
migrations.CreateModel(
name='DCLNavbarPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('logo_url', models.URLField(blank=True, max_length=300, null=True)),
('language_dropdown', models.BooleanField(default=True, help_text='Select to include the language selection dropdown.')),
('show_login_option', models.BooleanField(default=True, help_text='Uncheck this if you do not want to show login/dashboard.')),
('show_non_transparent_navbar_always', models.BooleanField(default=False, help_text='Check this if you want to show non transparent navbar only.(Useful when we want to setup a simple page)')),
('logo_dark', filer.fields.image.FilerImageField(blank=True, help_text='Logo to be used on white navbar', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_navbar_logo_dark', to=settings.FILER_IMAGE_MODEL)),
('logo_light', filer.fields.image.FilerImageField(blank=True, help_text='Logo to be used on transparent navbar', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl_navbar_logo_light', to=settings.FILER_IMAGE_MODEL)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
#migrations.CreateModel(
# name='DCLCalculatorPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('vm_type', models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50)),
# ('vm_templates_to_show', datacenterlight.cms_models.MultipleChoiceArrayField(base_field=models.CharField(blank=True, max_length=256), blank=True, default=list, help_text='Recommended: If you wish to show all templates of the corresponding VM Type (public/ipv6only), please do not select any of the items in the above field. This will allow any new template(s) added in the backend to be automatically listed in this calculator instance.', size=None)),
# ('default_selected_template', models.CharField(default='Devuan Ascii', help_text='Write the name of the template that you need selected as default when the calculator loads', max_length=128, null=True)),
# ('enable_512mb_ram', models.BooleanField(default=False)),
# ('pricing', models.ForeignKey(help_text='Choose a pricing that will be associated with this Calculator', on_delete=django.db.models.deletion.CASCADE, related_name='dcl_custom_pricing_vm_pricing', to='datacenterlight.vmpricing')),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='DCLBannerItemPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('content', djangocms_text_ckeditor.fields.HTMLField()),
# ('banner_text', djangocms_text_ckeditor.fields.HTMLField(blank=True, help_text='Optional text to be shown as banner in other half.', max_length=100, null=True)),
# ('text_direction', models.CharField(choices=[('left', 'Left'), ('right', 'Right')], default=True, help_text='The alignment of text in the section', max_length=10)),
# ('banner_image', filer.fields.image.FilerImageField(blank=True, help_text='Optional image to be used in the banner in other half.', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.FILER_IMAGE_MODEL)),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
#migrations.CreateModel(
# name='CMSFaviconExtension',
# fields=[
# ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
# ('favicon', models.CharField(blank=True, max_length=100, null=True)),
# ('extended_object', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='cms.page')),
# ('public_extension', models.OneToOneField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='draft_extension', to='datacenterlight.cmsfaviconextension')),
# ],
# options={
# 'abstract': False,
# },
#),
#migrations.CreateModel(
# name='CMSIntegration',
# fields=[
# ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
# ('name', models.CharField(default='default', help_text='A unique name for the Integration. This name will be used to fetch the Integration into pages', max_length=100)),
# ('calculator_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-calculator-placeholder+', slotname='datacenterlight_calculator', to='cms.placeholder')),
# ('domain', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sites.site')),
# ('footer_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-footer-placeholder+', slotname='datacenterlight_footer', to='cms.placeholder')),
# ('navbar_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-navbar-placeholder+', slotname='datacenterlight_navbar', to='cms.placeholder')),
# ],
# options={
# 'unique_together': {('name', 'domain')},
# },
#),
]

View file

@ -0,0 +1,77 @@
# Generated by Django 4.2.7 on 2023-12-06 11:44
import cms.models.fields
import datacenterlight.cms_models
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import djangocms_text_ckeditor.fields
import filer.fields.image
class Migration(migrations.Migration):
dependencies = [
('sites', '0002_alter_domain_unique'),
('cms', '0022_auto_20180620_1551'),
migrations.swappable_dependency(settings.FILER_IMAGE_MODEL),
('datacenterlight', '0004_dclnavbarpluginmodel_dclcalculatorpluginmodel_and_more'),
]
operations = [
#migrations.CreateModel(
# name='DCLCalculatorPluginModel',
# fields=[
# ('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
# ('vm_type', models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50)),
# ('vm_templates_to_show', datacenterlight.cms_models.MultipleChoiceArrayField(base_field=models.CharField(blank=True, max_length=256), blank=True, default=list, help_text='Recommended: If you wish to show all templates of the corresponding VM Type (public/ipv6only), please do not select any of the items in the above field. This will allow any new template(s) added in the backend to be automatically listed in this calculator instance.', size=None)),
# ('default_selected_template', models.CharField(default='Devuan Ascii', help_text='Write the name of the template that you need selected as default when the calculator loads', max_length=128, null=True)),
# ('enable_512mb_ram', models.BooleanField(default=False)),
# ('pricing', models.ForeignKey(help_text='Choose a pricing that will be associated with this Calculator', on_delete=django.db.models.deletion.CASCADE, related_name='dcl_custom_pricing_vm_pricing', to='datacenterlight.vmpricing')),
# ],
# options={
# 'abstract': False,
# },
# bases=('cms.cmsplugin',),
#),
migrations.CreateModel(
name='DCLBannerItemPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('content', djangocms_text_ckeditor.fields.HTMLField()),
('banner_text', djangocms_text_ckeditor.fields.HTMLField(blank=True, help_text='Optional text to be shown as banner in other half.', max_length=100, null=True)),
('text_direction', models.CharField(choices=[('left', 'Left'), ('right', 'Right')], default=True, help_text='The alignment of text in the section', max_length=10)),
('banner_image', filer.fields.image.FilerImageField(blank=True, help_text='Optional image to be used in the banner in other half.', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.FILER_IMAGE_MODEL)),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
migrations.CreateModel(
name='CMSFaviconExtension',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('favicon', models.CharField(blank=True, max_length=100, null=True)),
('extended_object', models.OneToOneField(editable=False, on_delete=django.db.models.deletion.CASCADE, to='cms.page')),
('public_extension', models.OneToOneField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='draft_extension', to='datacenterlight.cmsfaviconextension')),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='CMSIntegration',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(default='default', help_text='A unique name for the Integration. This name will be used to fetch the Integration into pages', max_length=100)),
('calculator_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-calculator-placeholder+', slotname='datacenterlight_calculator', to='cms.placeholder')),
('domain', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sites.site')),
('footer_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-footer-placeholder+', slotname='datacenterlight_footer', to='cms.placeholder')),
('navbar_placeholder', cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='dcl-navbar-placeholder+', slotname='datacenterlight_navbar', to='cms.placeholder')),
],
options={
'unique_together': {('name', 'domain')},
},
),
]

View file

@ -0,0 +1,29 @@
# Generated by Django 4.2.7 on 2023-12-06 11:46
import datacenterlight.cms_models
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('cms', '0022_auto_20180620_1551'),
('datacenterlight', '0005_dclcalculatorpluginmodel_dclbanneritempluginmodel_and_more'),
]
operations = [
migrations.CreateModel(
name='DCLCalculatorPluginModel',
fields=[
('cmsplugin_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, related_name='%(app_label)s_%(class)s', serialize=False, to='cms.cmsplugin')),
('default_selected_template', models.CharField(default='Devuan Ascii', help_text='Write the name of the template that you need selected as default when the calculator loads', max_length=128, null=True)),
('enable_512mb_ram', models.BooleanField(default=False)),
('pricing', models.ForeignKey(help_text='Choose a pricing that will be associated with this Calculator', on_delete=django.db.models.deletion.CASCADE, related_name='dcl_custom_pricing_vm_pricing', to='datacenterlight.vmpricing')),
],
options={
'abstract': False,
},
bases=('cms.cmsplugin',),
),
]

View file

@ -0,0 +1,24 @@
# Generated by Django 4.2.7 on 2023-12-06 11:51
import datacenterlight.cms_models
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0006_dclcalculatorpluginmodel'),
]
operations = [
#migrations.AddField(
# model_name='dclcalculatorpluginmodel',
# name='vm_templates_to_show',
# field=datacenterlight.cms_models.MultipleChoiceArrayField(base_field=models.CharField(blank=True, max_length=256), blank=True, default=list, help_text='Recommended: If you wish to show all templates of the corresponding VM Type (public/ipv6only), please do not select any of the items in the above field. This will allow any new template(s) added in the backend to be automatically listed in this calculator instance.', size=None),
#),
migrations.AddField(
model_name='dclcalculatorpluginmodel',
name='vm_type',
field=models.CharField(choices=[('public', 'Public'), ('ipv6only', 'Ipv6Only')], default='public', max_length=50),
),
]

View file

@ -0,0 +1,19 @@
# Generated by Django 4.2.7 on 2023-12-06 13:41
import datacenterlight.cms_models
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('datacenterlight', '0007_dclcalculatorpluginmodel_vm_templates_to_show_and_more'),
]
operations = [
migrations.AddField(
model_name='dclcalculatorpluginmodel',
name='vm_templates_to_show',
field=datacenterlight.cms_models.MultipleChoiceArrayField(base_field=models.CharField(blank=True, max_length=256), blank=True, default=list, help_text='Recommended: If you wish to show all templates of the corresponding VM Type (public/ipv6only), please do not select any of the items in the above field. This will allow any new template(s) added in the backend to be automatically listed in this calculator instance.', size=None),
),
]

View file

@ -1,261 +0,0 @@
# Generated by Django 4.2.7 on 2023-12-02 12:45
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import utils.mixins
class Migration(migrations.Migration):
initial = True
dependencies = [
('membership', '__first__'),
('utils', '__first__'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('datacenterlight', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='GenericProduct',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('product_name', models.CharField(default='', max_length=128)),
('product_slug', models.SlugField(help_text='An mandatory unique slug for the product', unique=True)),
('product_description', models.CharField(default='', max_length=500)),
('created_at', models.DateTimeField(auto_now_add=True)),
('product_price', models.DecimalField(decimal_places=2, max_digits=6)),
('product_vat', models.DecimalField(decimal_places=4, default=0, max_digits=6)),
('product_is_subscription', models.BooleanField(default=True)),
('product_subscription_interval', models.CharField(default='month', help_text='Choose between `year` and `month`', max_length=10)),
('exclude_vat_calculations', models.BooleanField(default=False, help_text='When checked VAT calculations are excluded for this product')),
],
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
),
migrations.CreateModel(
name='HostingOrder',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('vm_id', models.IntegerField(default=0)),
('created_at', models.DateTimeField(auto_now_add=True)),
('approved', models.BooleanField(default=False)),
('last4', models.CharField(max_length=4)),
('cc_brand', models.CharField(max_length=128)),
('stripe_charge_id', models.CharField(max_length=100, null=True)),
('price', models.FloatField()),
('subscription_id', models.CharField(max_length=100, null=True)),
('generic_payment_description', models.CharField(max_length=500, null=True)),
('billing_address', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='utils.billingaddress')),
('customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='membership.stripecustomer')),
('generic_product', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='hosting.genericproduct')),
],
options={
'permissions': (('pr_view_hostingorder', 'View Hosting Order'),),
},
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
),
migrations.CreateModel(
name='HostingPlan',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('disk_size', models.FloatField(default=0.0)),
('cpu_cores', models.FloatField(default=0.0)),
('memory', models.FloatField(default=0.0)),
],
),
migrations.CreateModel(
name='IncompletePaymentIntents',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('completed_at', models.DateTimeField(null=True)),
('created_at', models.DateTimeField(auto_now_add=True)),
('payment_intent_id', models.CharField(max_length=100)),
('request', models.TextField()),
('stripe_api_cus_id', models.CharField(max_length=30)),
('card_details_response', models.TextField()),
('stripe_subscription_id', models.CharField(max_length=100, null=True)),
('stripe_charge_id', models.CharField(max_length=100, null=True)),
('gp_details', models.TextField()),
('billing_address_data', models.TextField()),
],
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
),
migrations.CreateModel(
name='IncompleteSubscriptions',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_at', models.DateTimeField(auto_now_add=True)),
('completed_at', models.DateTimeField(null=True)),
('subscription_id', models.CharField(max_length=100)),
('subscription_status', models.CharField(max_length=30)),
('name', models.CharField(max_length=50)),
('email', models.EmailField(max_length=254)),
('request', models.TextField()),
('stripe_api_cus_id', models.CharField(max_length=30)),
('card_details_response', models.TextField()),
('stripe_subscription_obj', models.TextField()),
('stripe_onetime_charge', models.TextField()),
('gp_details', models.TextField()),
('specs', models.TextField()),
('vm_template_id', models.PositiveIntegerField(default=0)),
('template', models.TextField()),
('billing_address_data', models.TextField()),
],
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
),
migrations.CreateModel(
name='StripeTaxRate',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('tax_rate_id', models.CharField(max_length=100, unique=True)),
('jurisdiction', models.CharField(max_length=10)),
('inclusive', models.BooleanField(default=False)),
('display_name', models.CharField(max_length=100)),
('percentage', models.FloatField(default=0)),
('description', models.CharField(max_length=100)),
],
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
),
migrations.CreateModel(
name='VATRates',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('start_date', models.DateField(blank=True, null=True)),
('stop_date', models.DateField(blank=True, null=True)),
('territory_codes', models.TextField(blank=True, default='')),
('currency_code', models.CharField(max_length=10)),
('rate', models.FloatField()),
('rate_type', models.TextField(blank=True, default='')),
('description', models.TextField(blank=True, default='')),
],
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
),
migrations.CreateModel(
name='VMDetail',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('vm_id', models.IntegerField(default=0)),
('disk_size', models.FloatField(default=0.0)),
('cores', models.FloatField(default=0.0)),
('memory', models.FloatField(default=0.0)),
('configuration', models.CharField(default='', max_length=128)),
('ipv4', models.TextField(default='')),
('ipv6', models.TextField(default='')),
('created_at', models.DateTimeField(auto_now_add=True)),
('terminated_at', models.DateTimeField(null=True)),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
migrations.CreateModel(
name='UserHostingKey',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('public_key', models.TextField()),
('private_key', models.FileField(blank=True, upload_to='private_keys')),
('created_at', models.DateTimeField(auto_now_add=True)),
('name', models.CharField(max_length=100)),
('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
migrations.CreateModel(
name='UserCardDetail',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('last4', models.CharField(max_length=4)),
('brand', models.CharField(max_length=128)),
('card_id', models.CharField(blank=True, default='', max_length=100)),
('fingerprint', models.CharField(max_length=100)),
('exp_month', models.IntegerField()),
('exp_year', models.IntegerField()),
('preferred', models.BooleanField(default=False)),
('stripe_customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='membership.stripecustomer')),
],
options={
'permissions': (('pr_view_usercarddetail', 'View User Card'),),
},
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
),
migrations.CreateModel(
name='OrderDetail',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('cores', models.IntegerField(default=0)),
('memory', models.IntegerField(default=0)),
('hdd_size', models.IntegerField(default=0)),
('ssd_size', models.IntegerField(default=0)),
('vm_template', models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='datacenterlight.vmtemplate')),
],
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
),
migrations.CreateModel(
name='MonthlyHostingBill',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created', models.DateTimeField(help_text='When the invoice was created')),
('receipt_number', models.CharField(help_text='The receipt number that is generated on Stripe', max_length=100)),
('invoice_number', models.CharField(help_text='The invoice number that is generated on Stripe', max_length=100)),
('paid_at', models.DateTimeField(help_text='Date on which the bill was paid')),
('period_start', models.DateTimeField()),
('period_end', models.DateTimeField()),
('billing_reason', models.CharField(max_length=25)),
('discount', models.PositiveIntegerField()),
('total', models.IntegerField()),
('lines_data_count', models.IntegerField()),
('invoice_id', models.CharField(max_length=100, unique=True)),
('lines_meta_data_csv', models.TextField(default='')),
('subscription_ids_csv', models.TextField(default='')),
('customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='membership.stripecustomer')),
('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hosting.hostingorder')),
],
options={
'permissions': (('pr_view_monthlyhostingbill', 'View Monthly Hosting'),),
},
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
),
migrations.AddField(
model_name='hostingorder',
name='order_detail',
field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to='hosting.orderdetail'),
),
migrations.AddField(
model_name='hostingorder',
name='vm_pricing',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='datacenterlight.vmpricing'),
),
migrations.CreateModel(
name='HostingBillLineItem',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('amount', models.IntegerField()),
('description', models.CharField(max_length=255)),
('discountable', models.BooleanField()),
('metadata', models.CharField(max_length=128)),
('period_start', models.DateTimeField()),
('period_end', models.DateTimeField()),
('proration', models.BooleanField()),
('quantity', models.PositiveIntegerField()),
('unit_amount', models.PositiveIntegerField()),
('monthly_hosting_bill', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hosting.monthlyhostingbill')),
('stripe_plan', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='datacenterlight.stripeplan')),
],
options={
'permissions': (('pr_view_hostingbilllineitem', 'View Monthly Hosting Bill Line Item'),),
},
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
),
migrations.CreateModel(
name='HostingBill',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('total_price', models.FloatField(default=0.0)),
('billing_address', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='utils.billingaddress')),
('customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='membership.stripecustomer')),
],
options={
'permissions': (('pr_view_hostingbill', 'View Hosting Bill'),),
},
bases=(utils.mixins.AssignPermissionsMixin, models.Model),
),
]

View file

@ -1,4 +1,4 @@
# Generated by Django 4.2.7 on 2023-12-02 12:46
# Generated by Django 4.2.7 on 2023-12-06 11:35
from django.conf import settings
import django.core.validators

File diff suppressed because one or more lines are too long