forked from Fediversity/Fediversity
fix saving for sepparated models
This commit is contained in:
parent
2429b37ee9
commit
ecb107dd56
8 changed files with 149 additions and 143 deletions
|
@ -1,17 +1,61 @@
|
||||||
# Generated by Django 4.2.16 on 2025-02-20 08:56
|
# Generated by Django 4.2.16 on 2025-02-26 12:01
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
initial = True
|
initial = True
|
||||||
|
|
||||||
dependencies = []
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name="DeployFormModel",
|
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=[
|
fields=[
|
||||||
(
|
(
|
||||||
"id",
|
"id",
|
||||||
|
@ -22,10 +66,58 @@ class Migration(migrations.Migration):
|
||||||
verbose_name="ID",
|
verbose_name="ID",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
("domain", models.TextField()),
|
|
||||||
("mastodon", models.BooleanField(default=False)),
|
|
||||||
("pixelfed", models.BooleanField(default=False)),
|
("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)),
|
("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",
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Generated by Django 4.2.16 on 2025-02-20 09:20
|
# Generated by Django 4.2.16 on 2025-02-26 12:10
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
|
@ -13,12 +13,15 @@ class Migration(migrations.Migration):
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
migrations.AddField(
|
migrations.AlterField(
|
||||||
model_name="deployformmodel",
|
model_name="configuration",
|
||||||
name="user",
|
name="operator",
|
||||||
field=models.ForeignKey(
|
field=models.ForeignKey(
|
||||||
default=1,
|
default=1,
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
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,
|
to=settings.AUTH_USER_MODEL,
|
||||||
),
|
),
|
||||||
),
|
),
|
|
@ -0,0 +1,27 @@
|
||||||
|
# Generated by Django 4.2.16 on 2025-02-26 12:19
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
("panel", "0002_alter_configuration_operator"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="configuration",
|
||||||
|
name="operator",
|
||||||
|
field=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,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
|
@ -1,55 +0,0 @@
|
||||||
# Generated by Django 4.2.16 on 2025-02-25 10:25
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('panel', '0002_deployformmodel_user'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='deployformmodel',
|
|
||||||
name='mastodon',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='deployformmodel',
|
|
||||||
name='peertube',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='deployformmodel',
|
|
||||||
name='pixelfed',
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='deployformmodel',
|
|
||||||
name='domain',
|
|
||||||
field=models.CharField(choices=[('fediversity_eu', 'fediversity.eu'), ('fediversity_net', 'fediversity.net')], max_length=255),
|
|
||||||
),
|
|
||||||
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.deployformmodel')),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
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.deployformmodel')),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
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.deployformmodel')),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,18 +0,0 @@
|
||||||
# Generated by Django 4.2.16 on 2025-02-20 09:20
|
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
dependencies = [
|
|
||||||
('panel', '0002_deployformmodel_user'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RenameModel(
|
|
||||||
old_name='DeployFormModel',
|
|
||||||
new_name='Configuration',
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,35 +0,0 @@
|
||||||
# Generated by Django 4.2.16 on 2025-02-24 09:49
|
|
||||||
|
|
||||||
from django.conf import settings
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
||||||
('panel', '0003_renamemodel'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='configuration',
|
|
||||||
name='user',
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='configuration',
|
|
||||||
name='enable',
|
|
||||||
field=models.BooleanField(default=False, help_text='Enable the configuration'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='configuration',
|
|
||||||
name='operator',
|
|
||||||
field=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.AlterField(
|
|
||||||
model_name='configuration',
|
|
||||||
name='domain',
|
|
||||||
field=models.CharField(choices=[('fediversity_eu', 'fediversity.eu'), ('fediversity_net', 'fediversity.net')], max_length=255),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,14 +0,0 @@
|
||||||
# Generated by Django 4.2.16 on 2025-02-26 10:37
|
|
||||||
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('panel', '0003_remove_deployformmodel_mastodon_and_more'),
|
|
||||||
('panel', '0004_remove_configuration_user_configuration_enable_and_more'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
]
|
|
|
@ -36,22 +36,28 @@ class ConfigurationForm(LoginRequiredMixin, UpdateView):
|
||||||
def get_object(self, queryset=None):
|
def get_object(self, queryset=None):
|
||||||
obj, created = Configuration.objects.get_or_create(
|
obj, created = Configuration.objects.get_or_create(
|
||||||
operator=self.request.user)
|
operator=self.request.user)
|
||||||
|
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
context = super().get_context_data(**kwargs)
|
context = super().get_context_data(**kwargs)
|
||||||
deploy_form = self.get_object()
|
deploy_form = self.get_object()
|
||||||
|
|
||||||
mastodon_config, _ = MastodonConfig.objects.get_or_create(
|
context.update({
|
||||||
deploy_form=deploy_form)
|
'mastodon_form': MastodonConfigForm(self.request.POST or None, instance=deploy_form.mastodonconfig),
|
||||||
pixelfed_config, _ = PixelfedConfig.objects.get_or_create(
|
'pixelfed_form': PixelfedConfigForm(self.request.POST or None, instance=deploy_form.pixelfedconfig),
|
||||||
deploy_form=deploy_form)
|
'peertube_form': PeertubeConfigForm(self.request.POST or None, instance=deploy_form.peertubeconfig),
|
||||||
peertube_config, _ = PeertubeConfig.objects.get_or_create(
|
})
|
||||||
deploy_form=deploy_form)
|
|
||||||
|
|
||||||
context['mastodon_form'] = MastodonConfigForm(instance=mastodon_config)
|
|
||||||
context['pixelfed_form'] = PixelfedConfigForm(instance=pixelfed_config)
|
|
||||||
context['peertube_form'] = PeertubeConfigForm(instance=peertube_config)
|
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
response = super().form_valid(form) # Save main Configuration form
|
||||||
|
obj = self.get_object() # Get instance
|
||||||
|
|
||||||
|
# Save related forms
|
||||||
|
MastodonConfigForm(self.request.POST, instance=obj.mastodonconfig).save()
|
||||||
|
PixelfedConfigForm(self.request.POST, instance=obj.pixelfedconfig).save()
|
||||||
|
PeertubeConfigForm(self.request.POST, instance=obj.peertubeconfig).save()
|
||||||
|
|
||||||
|
return response
|
Loading…
Add table
Reference in a new issue