- Apply Black formatting to all Python files in core and stiftung modules - Fix import statement ordering with isort - Ensure all code meets automated quality standards - Resolve CI/CD pipeline formatting failures - Maintain consistent code style across the entire codebase
125 lines
4.8 KiB
Python
125 lines
4.8 KiB
Python
from django.core.management.base import BaseCommand
|
|
|
|
from stiftung.models import AppConfiguration
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = "Initialize default app configuration settings"
|
|
|
|
def handle(self, *args, **options):
|
|
# Paperless Integration Settings
|
|
paperless_settings = [
|
|
{
|
|
"key": "paperless_api_url",
|
|
"display_name": "Paperless API URL",
|
|
"description": "The base URL for your Paperless-NGX API (e.g., http://paperless.example.com:8000)",
|
|
"value": "http://192.168.178.167:30070",
|
|
"default_value": "http://192.168.178.167:30070",
|
|
"setting_type": "url",
|
|
"category": "paperless",
|
|
"order": 1,
|
|
},
|
|
{
|
|
"key": "paperless_api_token",
|
|
"display_name": "Paperless API Token",
|
|
"description": "The authentication token for Paperless API access",
|
|
"value": "",
|
|
"default_value": "",
|
|
"setting_type": "text",
|
|
"category": "paperless",
|
|
"order": 2,
|
|
},
|
|
{
|
|
"key": "paperless_destinataere_tag",
|
|
"display_name": "Destinatäre Tag Name",
|
|
"description": "The tag name used to identify Destinatäre documents in Paperless",
|
|
"value": "Stiftung_Destinatäre",
|
|
"default_value": "Stiftung_Destinatäre",
|
|
"setting_type": "tag",
|
|
"category": "paperless",
|
|
"order": 3,
|
|
},
|
|
{
|
|
"key": "paperless_destinataere_tag_id",
|
|
"display_name": "Destinatäre Tag ID",
|
|
"description": "The numeric ID of the Destinatäre tag in Paperless",
|
|
"value": "210",
|
|
"default_value": "210",
|
|
"setting_type": "tag_id",
|
|
"category": "paperless",
|
|
"order": 4,
|
|
},
|
|
{
|
|
"key": "paperless_land_tag",
|
|
"display_name": "Land & Pächter Tag Name",
|
|
"description": "The tag name used to identify Land and Pächter documents in Paperless",
|
|
"value": "Stiftung_Land_und_Pächter",
|
|
"default_value": "Stiftung_Land_und_Pächter",
|
|
"setting_type": "tag",
|
|
"category": "paperless",
|
|
"order": 5,
|
|
},
|
|
{
|
|
"key": "paperless_land_tag_id",
|
|
"display_name": "Land & Pächter Tag ID",
|
|
"description": "The numeric ID of the Land & Pächter tag in Paperless",
|
|
"value": "204",
|
|
"default_value": "204",
|
|
"setting_type": "tag_id",
|
|
"category": "paperless",
|
|
"order": 6,
|
|
},
|
|
{
|
|
"key": "paperless_admin_tag",
|
|
"display_name": "Administration Tag Name",
|
|
"description": "The tag name used to identify Administration documents in Paperless",
|
|
"value": "Stiftung_Administration",
|
|
"default_value": "Stiftung_Administration",
|
|
"setting_type": "tag",
|
|
"category": "paperless",
|
|
"order": 7,
|
|
},
|
|
{
|
|
"key": "paperless_admin_tag_id",
|
|
"display_name": "Administration Tag ID",
|
|
"description": "The numeric ID of the Administration tag in Paperless",
|
|
"value": "216",
|
|
"default_value": "216",
|
|
"setting_type": "tag_id",
|
|
"category": "paperless",
|
|
"order": 8,
|
|
},
|
|
]
|
|
|
|
created_count = 0
|
|
updated_count = 0
|
|
|
|
for setting_data in paperless_settings:
|
|
setting, created = AppConfiguration.objects.get_or_create(
|
|
key=setting_data["key"], defaults=setting_data
|
|
)
|
|
|
|
if created:
|
|
created_count += 1
|
|
self.stdout.write(
|
|
self.style.SUCCESS(f"Created setting: {setting.display_name}")
|
|
)
|
|
else:
|
|
# Update existing setting with new defaults if needed
|
|
if not setting.description:
|
|
setting.description = setting_data["description"]
|
|
setting.save()
|
|
updated_count += 1
|
|
|
|
self.stdout.write(
|
|
self.style.SUCCESS(
|
|
f"Configuration initialized successfully! "
|
|
f"Created {created_count} new settings, updated {updated_count} existing settings."
|
|
)
|
|
)
|
|
self.stdout.write(
|
|
self.style.WARNING(
|
|
'You can now manage these settings in the Django Admin under "App Configurations"'
|
|
)
|
|
)
|