diff --git a/panel/src/panel/admin.py b/panel/src/panel/admin.py index cd6b7187..9c4ee733 100644 --- a/panel/src/panel/admin.py +++ b/panel/src/panel/admin.py @@ -1,29 +1,5 @@ from django.contrib import admin -<<<<<<< HEAD -from panel.models import Configuration, PeertubeConfig, PixelfedConfig, MastodonConfig - - -class MastodonConfigInline(admin.StackedInline): - model = MastodonConfig - - -class PixelfedConfigInline(admin.StackedInline): - model = PixelfedConfig - - -class PeertubeConfigInline(admin.StackedInline): - model = PeertubeConfig - - -class DeployFormModelServices(admin.ModelAdmin): - inlines = [MastodonConfigInline, - PixelfedConfigInline, PeertubeConfigInline] - - -admin.site.register(Configuration, DeployFormModelServices) -======= from panel.models import Configuration admin.site.register(Configuration) ->>>>>>> 99f1d78e29f74a218b5ef66881151f18c00b7e99 diff --git a/panel/src/panel/migrations/0001_init_deployment_model.py b/panel/src/panel/migrations/0001_init_deployment_model.py deleted file mode 100644 index 24cf8fb6..00000000 --- a/panel/src/panel/migrations/0001_init_deployment_model.py +++ /dev/null @@ -1,52 +0,0 @@ -# Generated by Django 4.2.16 on 2025-02-27 15:10 - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - replaces = [('panel', '0001_initial'), ('panel', '0002_alter_configuration_operator'), ('panel', '0003_alter_configuration_operator')] - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Configuration', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('enable', models.BooleanField(default=False, help_text='Enable the configuration')), - ('domain', models.CharField(choices=[('fediversity_eu', 'fediversity.eu'), ('fediversity_net', 'fediversity.net')], max_length=255)), - ('operator', models.ForeignKey(help_text='Operator who owns the configuration', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='configurations', to=settings.AUTH_USER_MODEL)), - ], - ), - migrations.CreateModel( - name='PixelfedConfig', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('pixelfed', models.BooleanField(default=False)), - ('deploy_form', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='panel.configuration')), - ], - ), - migrations.CreateModel( - name='PeertubeConfig', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('peertube', models.BooleanField(default=False)), - ('deploy_form', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='panel.configuration')), - ], - ), - migrations.CreateModel( - name='MastodonConfig', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('mastodon', models.BooleanField(default=False)), - ('deploy_form', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='panel.configuration')), - ], - ), - ] diff --git a/panel/src/panel/migrations/0001_initial.py b/panel/src/panel/migrations/0001_initial.py index f9613617..e3a2c0d5 100644 --- a/panel/src/panel/migrations/0001_initial.py +++ b/panel/src/panel/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.16 on 2025-03-04 10:59 +# Generated by Django 4.2.16 on 2025-03-05 10:34 from django.conf import settings from django.db import migrations, models @@ -15,115 +15,36 @@ class Migration(migrations.Migration): operations = [ migrations.CreateModel( - name="MastodonConfig", + name='MastodonConfig', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("enable", models.BooleanField(default=False)), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enable', models.BooleanField(default=False)), ], ), migrations.CreateModel( - name="PeertubeConfig", + name='PeertubeConfig', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("enable", models.BooleanField(default=False)), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enable', models.BooleanField(default=False)), ], ), migrations.CreateModel( - name="PixelfedConfig", + name='PixelfedConfig', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ("enable", models.BooleanField(default=False)), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enable', models.BooleanField(default=False)), ], ), migrations.CreateModel( - name="Configuration", + name='Configuration', fields=[ - ( - "id", - models.BigAutoField( - auto_created=True, - primary_key=True, - serialize=False, - verbose_name="ID", - ), - ), - ( - "enable", - models.BooleanField( - default=False, help_text="Enable the configuration" - ), - ), - ( - "domain", - models.CharField( - choices=[ - ("fediversity_eu", "fediversity.eu"), - ("fediversity_net", "fediversity.net"), - ], - max_length=255, - ), - ), - ( - "mastodon", - models.OneToOneField( - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="config", - to="panel.mastodonconfig", - ), - ), - ( - "operator", - models.ForeignKey( - help_text="Operator who owns the configuration", - null=True, - on_delete=django.db.models.deletion.SET_NULL, - related_name="configurations", - to=settings.AUTH_USER_MODEL, - ), - ), - ( - "peertube", - models.OneToOneField( - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="config", - to="panel.peertubeconfig", - ), - ), - ( - "pixelfed", - models.OneToOneField( - null=True, - on_delete=django.db.models.deletion.CASCADE, - related_name="config", - to="panel.pixelfedconfig", - ), - ), + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('enable', models.BooleanField(default=False, help_text='Enable the configuration')), + ('domain', models.CharField(choices=[('fediversity_eu', 'fediversity.eu'), ('fediversity_net', 'fediversity.net')], max_length=255)), + ('mastodon', models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='config', to='panel.mastodonconfig')), + ('operator', models.ForeignKey(help_text='Operator who owns the configuration', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='configurations', to=settings.AUTH_USER_MODEL)), + ('peertube', models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='config', to='panel.peertubeconfig')), + ('pixelfed', models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='config', to='panel.pixelfedconfig')), ], ), ] diff --git a/panel/src/panel/models.py b/panel/src/panel/models.py index 180cd92a..14e8846d 100644 --- a/panel/src/panel/models.py +++ b/panel/src/panel/models.py @@ -56,53 +56,30 @@ class Configuration(models.Model): instance.save() return instance - -operator = models.ForeignKey( - User, - on_delete=models.SET_NULL, - null=True, - related_name="configurations", - help_text="Operator who owns the configuration", -) -enable = models.BooleanField( - default=False, - help_text="Enable the configuration", -) -domain = models.CharField( - # XXX: hard-code available apex domains for now, - # they will be prefixed by the user name - # TODO: map to user's registered domains - choices=[ - ("fediversity_eu", "fediversity.eu"), - ("fediversity_net", "fediversity.net") - ], - max_length=255, -) -# TODO: map to configuration model per service - - -class MastodonConfig(models.Model): - deploy_form = models.OneToOneField( - Configuration, on_delete=models.CASCADE) - mastodon = models.BooleanField(default=False) - - def __str__(self): - return f"Mastodon: {self.mastodon}" - - -class PixelfedConfig(models.Model): - deploy_form = models.OneToOneField( - Configuration, on_delete=models.CASCADE) - pixelfed = models.BooleanField(default=False) - - def __str__(self): - return f"Pixelfed: {self.pixelfed}" - - -class PeertubeConfig(models.Model): - deploy_form = models.OneToOneField( - Configuration, on_delete=models.CASCADE) - peertube = models.BooleanField(default=False) - - def __str__(self): - return f"Peertube: {self.peertube}" + operator = models.ForeignKey( + User, + on_delete=models.SET_NULL, + null=True, + related_name="configurations", + help_text="Operator who owns the configuration", + ) + enable = models.BooleanField( + default=False, + help_text="Enable the configuration", + ) + domain = models.CharField( + # XXX: hard-code available apex domains for now, + # they will be prefixed by the user name + # TODO: map to user's registered domains + choices=[ + ("fediversity_eu", "fediversity.eu"), + ("fediversity_net", "fediversity.net") + ], + max_length=255, + ) + mastodon = models.OneToOneField( + MastodonConfig, on_delete=models.CASCADE, related_name='config', null=True) + pixelfed = models.OneToOneField( + PixelfedConfig, on_delete=models.CASCADE, related_name='config', null=True) + peertube = models.OneToOneField( + PeertubeConfig, on_delete=models.CASCADE, related_name='config', null=True) diff --git a/panel/src/panel/templates/configuration_form.html b/panel/src/panel/templates/configuration_form.html index 55f69ab6..8d1c6c83 100644 --- a/panel/src/panel/templates/configuration_form.html +++ b/panel/src/panel/templates/configuration_form.html @@ -3,14 +3,6 @@ <form method="post" enctype="multipart/form-data" action="{% url 'configuration_form' %}"> {% csrf_token %} {{ form.as_p }} -<<<<<<< HEAD - {{ mastodon_form.as_p }} - {{ pixelfed_form.as_p }} - {{ peertube_form.as_p }} - - </fieldset> -======= ->>>>>>> 99f1d78e29f74a218b5ef66881151f18c00b7e99 <button class="button" disabled>Deploy</button> <button class="button" type="submit" >Save</button>