feat: rebuild site content management

Replace legacy FAQ, downloads, and release flows with project and blog publishing. Add configurable branding and theme fields plus clean-start Compose seeding support.
This commit is contained in:
mohamad
2026-09-24 02:32:27 +03:30
parent 4fc4282f0f
commit 588d95f889
43 changed files with 703 additions and 1193 deletions
@@ -0,0 +1,90 @@
# Generated by Django 5.2.16 on 2026-09-23 22:48
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('products', '0021_release_channels'),
]
operations = [
migrations.AlterModelOptions(
name='mainproduct',
options={'ordering': ['order', 'name'], 'verbose_name': 'Main Project', 'verbose_name_plural': 'Main Projects'},
),
migrations.AlterModelOptions(
name='productvideo',
options={'ordering': ['order', 'pk'], 'verbose_name': 'Project Video', 'verbose_name_plural': 'Project Videos'},
),
migrations.AlterModelOptions(
name='subproduct',
options={'ordering': ['order', 'name'], 'verbose_name': 'Sub-project', 'verbose_name_plural': 'Sub-projects'},
),
migrations.RemoveField(
model_name='mainproduct',
name='distribution',
),
migrations.RemoveField(
model_name='mainproduct',
name='downloads_section_link_text',
),
migrations.RemoveField(
model_name='mainproduct',
name='downloads_section_link_url',
),
migrations.RemoveField(
model_name='mainproduct',
name='package_resource_button_text',
),
migrations.RemoveField(
model_name='mainproduct',
name='package_source_button_text',
),
migrations.RemoveField(
model_name='subproduct',
name='distribution',
),
migrations.RemoveField(
model_name='subproduct',
name='downloads_section_link_text',
),
migrations.RemoveField(
model_name='subproduct',
name='downloads_section_link_url',
),
migrations.RemoveField(
model_name='subproduct',
name='package_resource_button_text',
),
migrations.RemoveField(
model_name='subproduct',
name='package_source_button_text',
),
migrations.AlterField(
model_name='mainproduct',
name='homepage_order',
field=models.PositiveIntegerField(default=0, help_text='Order within the homepage Projects section.'),
),
migrations.AlterField(
model_name='mainproduct',
name='show_on_homepage',
field=models.BooleanField(default=False, help_text='Display this project in the homepage Projects section.'),
),
migrations.AlterField(
model_name='productvideo',
name='video_styled_background',
field=models.BooleanField(default=False, help_text='Show the video in a glass panel with an ambient glow.'),
),
migrations.AlterField(
model_name='subproduct',
name='homepage_order',
field=models.PositiveIntegerField(default=0, help_text='Order within the homepage Projects section.'),
),
migrations.AlterField(
model_name='subproduct',
name='show_on_homepage',
field=models.BooleanField(default=False, help_text='Display this sub-project in the homepage Projects section.'),
),
]