diff --git a/datacenterlight/migrations/0001_initial.py b/datacenterlight/migrations/0001_initial.py index e3f922f..cffc2d3 100644 --- a/datacenterlight/migrations/0001_initial.py +++ b/datacenterlight/migrations/0001_initial.py @@ -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. Refer docs.', 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. Refer docs.', 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')}, + # }, + #), ] diff --git a/datacenterlight/migrations/0002_dclfooterpluginmodel_dcllinkpluginmodel_and_more.py b/datacenterlight/migrations/0002_dclfooterpluginmodel_dcllinkpluginmodel_and_more.py new file mode 100644 index 0000000..d1b7b47 --- /dev/null +++ b/datacenterlight/migrations/0002_dclfooterpluginmodel_dcllinkpluginmodel_and_more.py @@ -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. Refer docs.', 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')}, + # }, + #), + ] diff --git a/datacenterlight/migrations/0003_vmtemplate_dclsectionpromopluginmodel_and_more.py b/datacenterlight/migrations/0003_vmtemplate_dclsectionpromopluginmodel_and_more.py new file mode 100644 index 0000000..c14bb5b --- /dev/null +++ b/datacenterlight/migrations/0003_vmtemplate_dclsectionpromopluginmodel_and_more.py @@ -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')}, + # }, + #), + ] diff --git a/datacenterlight/migrations/0004_dclnavbarpluginmodel_dclcalculatorpluginmodel_and_more.py b/datacenterlight/migrations/0004_dclnavbarpluginmodel_dclcalculatorpluginmodel_and_more.py new file mode 100644 index 0000000..e91e36d --- /dev/null +++ b/datacenterlight/migrations/0004_dclnavbarpluginmodel_dclcalculatorpluginmodel_and_more.py @@ -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')}, + # }, + #), + ] diff --git a/datacenterlight/migrations/0005_dclcalculatorpluginmodel_dclbanneritempluginmodel_and_more.py b/datacenterlight/migrations/0005_dclcalculatorpluginmodel_dclbanneritempluginmodel_and_more.py new file mode 100644 index 0000000..ad08887 --- /dev/null +++ b/datacenterlight/migrations/0005_dclcalculatorpluginmodel_dclbanneritempluginmodel_and_more.py @@ -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')}, + }, + ), + ] diff --git a/datacenterlight/migrations/0006_dclcalculatorpluginmodel.py b/datacenterlight/migrations/0006_dclcalculatorpluginmodel.py new file mode 100644 index 0000000..327a3ec --- /dev/null +++ b/datacenterlight/migrations/0006_dclcalculatorpluginmodel.py @@ -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',), + ), + ] diff --git a/datacenterlight/migrations/0007_dclcalculatorpluginmodel_vm_templates_to_show_and_more.py b/datacenterlight/migrations/0007_dclcalculatorpluginmodel_vm_templates_to_show_and_more.py new file mode 100644 index 0000000..571dfdb --- /dev/null +++ b/datacenterlight/migrations/0007_dclcalculatorpluginmodel_vm_templates_to_show_and_more.py @@ -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), + ), + ] diff --git a/datacenterlight/migrations/0008_dclcalculatorpluginmodel_vm_templates_to_show.py b/datacenterlight/migrations/0008_dclcalculatorpluginmodel_vm_templates_to_show.py new file mode 100644 index 0000000..e4886e7 --- /dev/null +++ b/datacenterlight/migrations/0008_dclcalculatorpluginmodel_vm_templates_to_show.py @@ -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), + ), + ] diff --git a/hosting/migrations/0001_initial.py b/hosting/migrations/0001_initial.py deleted file mode 100644 index 87f7ce3..0000000 --- a/hosting/migrations/0001_initial.py +++ /dev/null @@ -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), - ), - ] diff --git a/hosting/migrations/__init__.py b/hosting/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/membership/migrations/0001_initial.py b/membership/migrations/0001_initial.py index 3615a5b..66be307 100644 --- a/membership/migrations/0001_initial.py +++ b/membership/migrations/0001_initial.py @@ -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 diff --git a/opennebula_api/migrations/__init__.py b/opennebula_api/migrations/__init__.py deleted file mode 100755 index e69de29..0000000 diff --git a/utils/migrations/0001_initial.py b/utils/migrations/0001_initial.py deleted file mode 100644 index 4f5dcf3..0000000 --- a/utils/migrations/0001_initial.py +++ /dev/null @@ -1,67 +0,0 @@ -# Generated by Django 4.2.7 on 2023-12-02 12:47 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import utils.fields - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='BillingAddress', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('cardholder_name', models.CharField(default='', max_length=100)), - ('street_address', models.CharField(max_length=100)), - ('city', models.CharField(max_length=50)), - ('postal_code', models.CharField(max_length=50)), - ('country', utils.fields.CountryField(choices=[('AD', 'Andorra'), ('AE', 'United Arab Emirates'), ('AF', 'Afghanistan'), ('AG', 'Antigua & Barbuda'), ('AI', 'Anguilla'), ('AL', 'Albania'), ('AM', 'Armenia'), ('AN', 'Netherlands Antilles'), ('AO', 'Angola'), ('AQ', 'Antarctica'), ('AR', 'Argentina'), ('AS', 'American Samoa'), ('AT', 'Austria'), ('AU', 'Australia'), ('AW', 'Aruba'), ('AZ', 'Azerbaijan'), ('BA', 'Bosnia and Herzegovina'), ('BB', 'Barbados'), ('BD', 'Bangladesh'), ('BE', 'Belgium'), ('BF', 'Burkina Faso'), ('BG', 'Bulgaria'), ('BH', 'Bahrain'), ('BI', 'Burundi'), ('BJ', 'Benin'), ('BM', 'Bermuda'), ('BN', 'Brunei Darussalam'), ('BO', 'Bolivia'), ('BR', 'Brazil'), ('BS', 'Bahama'), ('BT', 'Bhutan'), ('BV', 'Bouvet Island'), ('BW', 'Botswana'), ('BY', 'Belarus'), ('BZ', 'Belize'), ('CA', 'Canada'), ('CC', 'Cocos (Keeling) Islands'), ('CF', 'Central African Republic'), ('CG', 'Congo'), ('CH', 'Switzerland'), ('CI', 'Ivory Coast'), ('CK', 'Cook Iislands'), ('CL', 'Chile'), ('CM', 'Cameroon'), ('CN', 'China'), ('CO', 'Colombia'), ('CR', 'Costa Rica'), ('CU', 'Cuba'), ('CV', 'Cape Verde'), ('CX', 'Christmas Island'), ('CY', 'Cyprus'), ('CZ', 'Czech Republic'), ('DE', 'Germany'), ('DJ', 'Djibouti'), ('DK', 'Denmark'), ('DM', 'Dominica'), ('DO', 'Dominican Republic'), ('DZ', 'Algeria'), ('EC', 'Ecuador'), ('EE', 'Estonia'), ('EG', 'Egypt'), ('EH', 'Western Sahara'), ('ER', 'Eritrea'), ('ES', 'Spain'), ('ET', 'Ethiopia'), ('FI', 'Finland'), ('FJ', 'Fiji'), ('FK', 'Falkland Islands (Malvinas)'), ('FM', 'Micronesia'), ('FO', 'Faroe Islands'), ('FR', 'France'), ('FX', 'France, Metropolitan'), ('GA', 'Gabon'), ('GB', 'United Kingdom (Great Britain)'), ('GD', 'Grenada'), ('GE', 'Georgia'), ('GF', 'French Guiana'), ('GH', 'Ghana'), ('GI', 'Gibraltar'), ('GL', 'Greenland'), ('GM', 'Gambia'), ('GN', 'Guinea'), ('GP', 'Guadeloupe'), ('GQ', 'Equatorial Guinea'), ('GR', 'Greece'), ('GS', 'South Georgia and the South Sandwich Islands'), ('GT', 'Guatemala'), ('GU', 'Guam'), ('GW', 'Guinea-Bissau'), ('GY', 'Guyana'), ('HK', 'Hong Kong'), ('HM', 'Heard & McDonald Islands'), ('HN', 'Honduras'), ('HR', 'Croatia'), ('HT', 'Haiti'), ('HU', 'Hungary'), ('ID', 'Indonesia'), ('IE', 'Ireland'), ('IL', 'Israel'), ('IN', 'India'), ('IO', 'British Indian Ocean Territory'), ('IQ', 'Iraq'), ('IR', 'Islamic Republic of Iran'), ('IS', 'Iceland'), ('IT', 'Italy'), ('JM', 'Jamaica'), ('JO', 'Jordan'), ('JP', 'Japan'), ('KE', 'Kenya'), ('KG', 'Kyrgyzstan'), ('KH', 'Cambodia'), ('KI', 'Kiribati'), ('KM', 'Comoros'), ('KN', 'St. Kitts and Nevis'), ('KP', "Korea, Democratic People's Republic of"), ('KR', 'Korea, Republic of'), ('KW', 'Kuwait'), ('KY', 'Cayman Islands'), ('KZ', 'Kazakhstan'), ('LA', "Lao People's Democratic Republic"), ('LB', 'Lebanon'), ('LC', 'Saint Lucia'), ('LI', 'Liechtenstein'), ('LK', 'Sri Lanka'), ('LR', 'Liberia'), ('LS', 'Lesotho'), ('LT', 'Lithuania'), ('LU', 'Luxembourg'), ('LV', 'Latvia'), ('LY', 'Libyan Arab Jamahiriya'), ('MA', 'Morocco'), ('MC', 'Monaco'), ('MD', 'Moldova, Republic of'), ('MG', 'Madagascar'), ('MH', 'Marshall Islands'), ('ML', 'Mali'), ('MN', 'Mongolia'), ('MM', 'Myanmar'), ('MO', 'Macau'), ('MP', 'Northern Mariana Islands'), ('MQ', 'Martinique'), ('MR', 'Mauritania'), ('MS', 'Monserrat'), ('MT', 'Malta'), ('MU', 'Mauritius'), ('MV', 'Maldives'), ('MW', 'Malawi'), ('MX', 'Mexico'), ('MY', 'Malaysia'), ('MZ', 'Mozambique'), ('NA', 'Namibia'), ('NC', 'New Caledonia'), ('NE', 'Niger'), ('NF', 'Norfolk Island'), ('NG', 'Nigeria'), ('NI', 'Nicaragua'), ('NL', 'Netherlands'), ('NO', 'Norway'), ('NP', 'Nepal'), ('NR', 'Nauru'), ('NU', 'Niue'), ('NZ', 'New Zealand'), ('OM', 'Oman'), ('PA', 'Panama'), ('PE', 'Peru'), ('PF', 'French Polynesia'), ('PG', 'Papua New Guinea'), ('PH', 'Philippines'), ('PK', 'Pakistan'), ('PL', 'Poland'), ('PM', 'St. Pierre & Miquelon'), ('PN', 'Pitcairn'), ('PR', 'Puerto Rico'), ('PT', 'Portugal'), ('PW', 'Palau'), ('PY', 'Paraguay'), ('QA', 'Qatar'), ('RE', 'Reunion'), ('RO', 'Romania'), ('RU', 'Russian Federation'), ('RW', 'Rwanda'), ('SA', 'Saudi Arabia'), ('SB', 'Solomon Islands'), ('SC', 'Seychelles'), ('SD', 'Sudan'), ('SE', 'Sweden'), ('SG', 'Singapore'), ('SH', 'St. Helena'), ('SI', 'Slovenia'), ('SJ', 'Svalbard & Jan Mayen Islands'), ('SK', 'Slovakia'), ('SL', 'Sierra Leone'), ('SM', 'San Marino'), ('SN', 'Senegal'), ('SO', 'Somalia'), ('SR', 'Suriname'), ('ST', 'Sao Tome & Principe'), ('SV', 'El Salvador'), ('SY', 'Syrian Arab Republic'), ('SZ', 'Swaziland'), ('TC', 'Turks & Caicos Islands'), ('TD', 'Chad'), ('TF', 'French Southern Territories'), ('TG', 'Togo'), ('TH', 'Thailand'), ('TJ', 'Tajikistan'), ('TK', 'Tokelau'), ('TM', 'Turkmenistan'), ('TN', 'Tunisia'), ('TO', 'Tonga'), ('TP', 'East Timor'), ('TR', 'Turkey'), ('TT', 'Trinidad & Tobago'), ('TV', 'Tuvalu'), ('TW', 'Taiwan, Province of China'), ('TZ', 'Tanzania, United Republic of'), ('UA', 'Ukraine'), ('UG', 'Uganda'), ('UM', 'United States Minor Outlying Islands'), ('US', 'United States of America'), ('UY', 'Uruguay'), ('UZ', 'Uzbekistan'), ('VA', 'Vatican City State (Holy See)'), ('VC', 'St. Vincent & the Grenadines'), ('VE', 'Venezuela'), ('VG', 'British Virgin Islands'), ('VI', 'United States Virgin Islands'), ('VN', 'Viet Nam'), ('VU', 'Vanuatu'), ('WF', 'Wallis & Futuna Islands'), ('WS', 'Samoa'), ('YE', 'Yemen'), ('YT', 'Mayotte'), ('YU', 'Yugoslavia'), ('ZA', 'South Africa'), ('ZM', 'Zambia'), ('ZR', 'Zaire'), ('ZW', 'Zimbabwe')], default='CH', max_length=2)), - ('vat_number', models.CharField(blank=True, default='', max_length=100)), - ('stripe_tax_id', models.CharField(blank=True, default='', max_length=100)), - ('vat_number_validated_on', models.DateTimeField(blank=True, null=True)), - ('vat_validation_status', models.CharField(blank=True, default='', max_length=25)), - ], - options={ - 'abstract': False, - }, - ), - migrations.CreateModel( - name='ContactMessage', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=200)), - ('email', models.EmailField(max_length=254)), - ('phone_number', models.CharField(blank=True, max_length=200)), - ('message', models.TextField()), - ('received_date', models.DateTimeField(auto_now_add=True)), - ], - ), - migrations.CreateModel( - name='UserBillingAddress', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('cardholder_name', models.CharField(default='', max_length=100)), - ('street_address', models.CharField(max_length=100)), - ('city', models.CharField(max_length=50)), - ('postal_code', models.CharField(max_length=50)), - ('country', utils.fields.CountryField(choices=[('AD', 'Andorra'), ('AE', 'United Arab Emirates'), ('AF', 'Afghanistan'), ('AG', 'Antigua & Barbuda'), ('AI', 'Anguilla'), ('AL', 'Albania'), ('AM', 'Armenia'), ('AN', 'Netherlands Antilles'), ('AO', 'Angola'), ('AQ', 'Antarctica'), ('AR', 'Argentina'), ('AS', 'American Samoa'), ('AT', 'Austria'), ('AU', 'Australia'), ('AW', 'Aruba'), ('AZ', 'Azerbaijan'), ('BA', 'Bosnia and Herzegovina'), ('BB', 'Barbados'), ('BD', 'Bangladesh'), ('BE', 'Belgium'), ('BF', 'Burkina Faso'), ('BG', 'Bulgaria'), ('BH', 'Bahrain'), ('BI', 'Burundi'), ('BJ', 'Benin'), ('BM', 'Bermuda'), ('BN', 'Brunei Darussalam'), ('BO', 'Bolivia'), ('BR', 'Brazil'), ('BS', 'Bahama'), ('BT', 'Bhutan'), ('BV', 'Bouvet Island'), ('BW', 'Botswana'), ('BY', 'Belarus'), ('BZ', 'Belize'), ('CA', 'Canada'), ('CC', 'Cocos (Keeling) Islands'), ('CF', 'Central African Republic'), ('CG', 'Congo'), ('CH', 'Switzerland'), ('CI', 'Ivory Coast'), ('CK', 'Cook Iislands'), ('CL', 'Chile'), ('CM', 'Cameroon'), ('CN', 'China'), ('CO', 'Colombia'), ('CR', 'Costa Rica'), ('CU', 'Cuba'), ('CV', 'Cape Verde'), ('CX', 'Christmas Island'), ('CY', 'Cyprus'), ('CZ', 'Czech Republic'), ('DE', 'Germany'), ('DJ', 'Djibouti'), ('DK', 'Denmark'), ('DM', 'Dominica'), ('DO', 'Dominican Republic'), ('DZ', 'Algeria'), ('EC', 'Ecuador'), ('EE', 'Estonia'), ('EG', 'Egypt'), ('EH', 'Western Sahara'), ('ER', 'Eritrea'), ('ES', 'Spain'), ('ET', 'Ethiopia'), ('FI', 'Finland'), ('FJ', 'Fiji'), ('FK', 'Falkland Islands (Malvinas)'), ('FM', 'Micronesia'), ('FO', 'Faroe Islands'), ('FR', 'France'), ('FX', 'France, Metropolitan'), ('GA', 'Gabon'), ('GB', 'United Kingdom (Great Britain)'), ('GD', 'Grenada'), ('GE', 'Georgia'), ('GF', 'French Guiana'), ('GH', 'Ghana'), ('GI', 'Gibraltar'), ('GL', 'Greenland'), ('GM', 'Gambia'), ('GN', 'Guinea'), ('GP', 'Guadeloupe'), ('GQ', 'Equatorial Guinea'), ('GR', 'Greece'), ('GS', 'South Georgia and the South Sandwich Islands'), ('GT', 'Guatemala'), ('GU', 'Guam'), ('GW', 'Guinea-Bissau'), ('GY', 'Guyana'), ('HK', 'Hong Kong'), ('HM', 'Heard & McDonald Islands'), ('HN', 'Honduras'), ('HR', 'Croatia'), ('HT', 'Haiti'), ('HU', 'Hungary'), ('ID', 'Indonesia'), ('IE', 'Ireland'), ('IL', 'Israel'), ('IN', 'India'), ('IO', 'British Indian Ocean Territory'), ('IQ', 'Iraq'), ('IR', 'Islamic Republic of Iran'), ('IS', 'Iceland'), ('IT', 'Italy'), ('JM', 'Jamaica'), ('JO', 'Jordan'), ('JP', 'Japan'), ('KE', 'Kenya'), ('KG', 'Kyrgyzstan'), ('KH', 'Cambodia'), ('KI', 'Kiribati'), ('KM', 'Comoros'), ('KN', 'St. Kitts and Nevis'), ('KP', "Korea, Democratic People's Republic of"), ('KR', 'Korea, Republic of'), ('KW', 'Kuwait'), ('KY', 'Cayman Islands'), ('KZ', 'Kazakhstan'), ('LA', "Lao People's Democratic Republic"), ('LB', 'Lebanon'), ('LC', 'Saint Lucia'), ('LI', 'Liechtenstein'), ('LK', 'Sri Lanka'), ('LR', 'Liberia'), ('LS', 'Lesotho'), ('LT', 'Lithuania'), ('LU', 'Luxembourg'), ('LV', 'Latvia'), ('LY', 'Libyan Arab Jamahiriya'), ('MA', 'Morocco'), ('MC', 'Monaco'), ('MD', 'Moldova, Republic of'), ('MG', 'Madagascar'), ('MH', 'Marshall Islands'), ('ML', 'Mali'), ('MN', 'Mongolia'), ('MM', 'Myanmar'), ('MO', 'Macau'), ('MP', 'Northern Mariana Islands'), ('MQ', 'Martinique'), ('MR', 'Mauritania'), ('MS', 'Monserrat'), ('MT', 'Malta'), ('MU', 'Mauritius'), ('MV', 'Maldives'), ('MW', 'Malawi'), ('MX', 'Mexico'), ('MY', 'Malaysia'), ('MZ', 'Mozambique'), ('NA', 'Namibia'), ('NC', 'New Caledonia'), ('NE', 'Niger'), ('NF', 'Norfolk Island'), ('NG', 'Nigeria'), ('NI', 'Nicaragua'), ('NL', 'Netherlands'), ('NO', 'Norway'), ('NP', 'Nepal'), ('NR', 'Nauru'), ('NU', 'Niue'), ('NZ', 'New Zealand'), ('OM', 'Oman'), ('PA', 'Panama'), ('PE', 'Peru'), ('PF', 'French Polynesia'), ('PG', 'Papua New Guinea'), ('PH', 'Philippines'), ('PK', 'Pakistan'), ('PL', 'Poland'), ('PM', 'St. Pierre & Miquelon'), ('PN', 'Pitcairn'), ('PR', 'Puerto Rico'), ('PT', 'Portugal'), ('PW', 'Palau'), ('PY', 'Paraguay'), ('QA', 'Qatar'), ('RE', 'Reunion'), ('RO', 'Romania'), ('RU', 'Russian Federation'), ('RW', 'Rwanda'), ('SA', 'Saudi Arabia'), ('SB', 'Solomon Islands'), ('SC', 'Seychelles'), ('SD', 'Sudan'), ('SE', 'Sweden'), ('SG', 'Singapore'), ('SH', 'St. Helena'), ('SI', 'Slovenia'), ('SJ', 'Svalbard & Jan Mayen Islands'), ('SK', 'Slovakia'), ('SL', 'Sierra Leone'), ('SM', 'San Marino'), ('SN', 'Senegal'), ('SO', 'Somalia'), ('SR', 'Suriname'), ('ST', 'Sao Tome & Principe'), ('SV', 'El Salvador'), ('SY', 'Syrian Arab Republic'), ('SZ', 'Swaziland'), ('TC', 'Turks & Caicos Islands'), ('TD', 'Chad'), ('TF', 'French Southern Territories'), ('TG', 'Togo'), ('TH', 'Thailand'), ('TJ', 'Tajikistan'), ('TK', 'Tokelau'), ('TM', 'Turkmenistan'), ('TN', 'Tunisia'), ('TO', 'Tonga'), ('TP', 'East Timor'), ('TR', 'Turkey'), ('TT', 'Trinidad & Tobago'), ('TV', 'Tuvalu'), ('TW', 'Taiwan, Province of China'), ('TZ', 'Tanzania, United Republic of'), ('UA', 'Ukraine'), ('UG', 'Uganda'), ('UM', 'United States Minor Outlying Islands'), ('US', 'United States of America'), ('UY', 'Uruguay'), ('UZ', 'Uzbekistan'), ('VA', 'Vatican City State (Holy See)'), ('VC', 'St. Vincent & the Grenadines'), ('VE', 'Venezuela'), ('VG', 'British Virgin Islands'), ('VI', 'United States Virgin Islands'), ('VN', 'Viet Nam'), ('VU', 'Vanuatu'), ('WF', 'Wallis & Futuna Islands'), ('WS', 'Samoa'), ('YE', 'Yemen'), ('YT', 'Mayotte'), ('YU', 'Yugoslavia'), ('ZA', 'South Africa'), ('ZM', 'Zambia'), ('ZR', 'Zaire'), ('ZW', 'Zimbabwe')], default='CH', max_length=2)), - ('vat_number', models.CharField(blank=True, default='', max_length=100)), - ('stripe_tax_id', models.CharField(blank=True, default='', max_length=100)), - ('vat_number_validated_on', models.DateTimeField(blank=True, null=True)), - ('vat_validation_status', models.CharField(blank=True, default='', max_length=25)), - ('current', models.BooleanField(default=True)), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='billing_addresses', to=settings.AUTH_USER_MODEL)), - ], - options={ - 'abstract': False, - }, - ), - ] diff --git a/utils/migrations/__init__.py b/utils/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/webhook/migrations/__init__.py b/webhook/migrations/__init__.py deleted file mode 100755 index e69de29..0000000