update
This commit is contained in:
71
fraud_platform/context_processors.py
Normal file
71
fraud_platform/context_processors.py
Normal file
@@ -0,0 +1,71 @@
|
||||
"""
|
||||
Context processors for SEO and site-wide data.
|
||||
"""
|
||||
from django.conf import settings
|
||||
from reports.models import SiteSettings
|
||||
|
||||
|
||||
def seo_context(request):
|
||||
"""
|
||||
Provides SEO-related context variables for all templates.
|
||||
"""
|
||||
site_url = request.build_absolute_uri('/').rstrip('/')
|
||||
|
||||
# Get site settings
|
||||
site_settings = SiteSettings.get_settings()
|
||||
|
||||
# Default SEO values
|
||||
default_seo = {
|
||||
'site_name': 'Портал за Докладване на Измами',
|
||||
'site_description': 'Портал за докладване на измами. Защита на гражданите от онлайн измами.',
|
||||
'site_keywords': 'измами, киберпрестъпления, докладване измами, защита потребители, България, официален портал, анти-измами, сигурност онлайн',
|
||||
'site_author': 'Официален Портал - Република България',
|
||||
'site_language': 'bg',
|
||||
'site_url': site_url,
|
||||
'site_image': f'{site_url}/static/images/logo.svg',
|
||||
'twitter_site': '@fraudplatformbg',
|
||||
'twitter_creator': '@fraudplatformbg',
|
||||
}
|
||||
|
||||
# Get page-specific SEO from view context if available
|
||||
page_seo = {
|
||||
'page_title': getattr(request, 'seo_title', None),
|
||||
'page_description': getattr(request, 'seo_description', None),
|
||||
'page_keywords': getattr(request, 'seo_keywords', None),
|
||||
'page_image': getattr(request, 'seo_image', None),
|
||||
'page_type': getattr(request, 'seo_type', 'website'),
|
||||
'canonical_url': getattr(request, 'canonical_url', request.build_absolute_uri()),
|
||||
}
|
||||
|
||||
# Merge defaults with page-specific
|
||||
seo = {**default_seo, **{k: v for k, v in page_seo.items() if v}}
|
||||
|
||||
# Build full title
|
||||
if seo.get('page_title'):
|
||||
seo['full_title'] = f"{seo['page_title']} | {seo['site_name']}"
|
||||
else:
|
||||
seo['full_title'] = seo['site_name']
|
||||
|
||||
# Use page image or default
|
||||
seo['og_image'] = seo.get('page_image') or seo['site_image']
|
||||
|
||||
return {
|
||||
'seo': seo,
|
||||
'site_settings': site_settings,
|
||||
}
|
||||
|
||||
|
||||
def email_settings(request):
|
||||
"""
|
||||
Provides email settings context (for use in settings if needed).
|
||||
"""
|
||||
from reports.models import SiteSettings
|
||||
site_settings = SiteSettings.get_settings()
|
||||
|
||||
return {
|
||||
'email_settings': {
|
||||
'default_from_email': site_settings.default_from_email,
|
||||
'contact_email': site_settings.contact_email,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user