snapshot: preserve company config foundation and staff dashboard access

This commit is contained in:
Md Bayazid Bostame
2026-03-26 13:58:45 +01:00
parent 9437aaa29a
commit 7bd03fc86e
15 changed files with 681 additions and 154 deletions

View File

@@ -7,7 +7,7 @@ from django.conf import settings
from django.templatetags.static import static
from django.utils.translation import get_language
from .models import PortalBranding
from .models import PortalBranding, PortalCompanyConfig
def get_portal_branding() -> PortalBranding:
@@ -32,6 +32,26 @@ def get_portal_branding() -> PortalBranding:
return branding
def get_portal_company_config() -> PortalCompanyConfig:
company_config, _ = PortalCompanyConfig.objects.get_or_create(
name='Default',
defaults={
'legal_company_name': 'TUBCO GmbH',
'country': 'Deutschland',
'website_url': '',
'imprint_url': '',
'privacy_url': '',
'hr_contact_email': '',
'it_contact_email': '',
'operations_contact_email': '',
'phone_number': '',
'vat_id': '',
'registration_number': '',
},
)
return company_config
def get_company_email_domain() -> str:
branding = get_portal_branding()
domain = (branding.company_domain or '').strip().lower().lstrip('@')
@@ -72,6 +92,7 @@ def get_portal_letterhead_path() -> Path:
def get_branding_context() -> dict[str, object]:
branding = get_portal_branding()
company_config = get_portal_company_config()
lang = (get_language() or branding.default_language or 'de').split('-')[0]
footer_text = (branding.footer_text_en or '').strip() if lang == 'en' else ''
legal_notice = (branding.legal_notice_en or '').strip() if lang == 'en' else ''
@@ -97,6 +118,21 @@ def get_branding_context() -> dict[str, object]:
'portal_has_custom_logo': bool(branding.logo_image),
'portal_has_custom_letterhead': bool(branding.pdf_letterhead),
'portal_has_custom_favicon': bool(branding.favicon_image),
'portal_company_config': company_config,
'portal_company_legal_name': company_config.legal_company_name or branding.company_name,
'portal_company_street': company_config.street_address,
'portal_company_postal_code': company_config.postal_code,
'portal_company_city': company_config.city,
'portal_company_country': company_config.country,
'portal_company_website_url': company_config.website_url,
'portal_company_imprint_url': company_config.imprint_url,
'portal_company_privacy_url': company_config.privacy_url,
'portal_company_hr_contact_email': company_config.hr_contact_email,
'portal_company_it_contact_email': company_config.it_contact_email,
'portal_company_operations_contact_email': company_config.operations_contact_email,
'portal_company_phone_number': company_config.phone_number,
'portal_company_vat_id': company_config.vat_id,
'portal_company_registration_number': company_config.registration_number,
}