Corp/backend/diagnose_page.py
Игорь Надеин 4d04aafdb9 refactor: Replace inline CSS with components (Phase 3)
- Replaced feed-* inline styles in base.html with feed-cards.css component (~60 lines)
- Replaced ios-search inline styles in 3 templates with ios-search.css component
  * employees/employees_list.html
  * search/results.html
  * employees/department_list.html
- Eliminated ~150 lines of duplicate CSS across templates
- All 17 tests passing
2025-10-28 08:54:38 +03:00

134 lines
4.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python
"""
Диагностика проблем с рендерингом страниц.
Проверяет, правильно ли подключаются компоненты.
"""
import os
import sys
from pathlib import Path
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'eusrr_backend.settings')
import django
django.setup()
from django.test import RequestFactory
from django.contrib.auth import get_user_model
from django.template import loader
from employees.models import Department
User = get_user_model()
def diagnose_department_page():
"""Диагностика страницы отдела"""
print("\n=== Диагностика страницы отдела ===\n")
# Создаём mock request
factory = RequestFactory()
request = factory.get('/employees/departments/1/')
# Пробуем получить отдел
try:
dept = Department.objects.first()
if not dept:
print("❌ Нет отделов в базе")
return
print(f"✓ Отдел найден: {dept.name} (ID: {dept.id})")
except Exception as e:
print(f"❌ Ошибка получения отдела: {e}")
return
# Пробуем загрузить шаблон
try:
template = loader.get_template('employees/department_detail.html')
print("✓ Шаблон department_detail.html загружен")
except Exception as e:
print(f"❌ Ошибка загрузки шаблона: {e}")
return
# Проверяем компоненты
components = [
'employees/components/department_header.html',
'employees/components/department_info.html',
'employees/components/department_team_circle.html',
'employees/components/department_sidebar.html',
'employees/components/department_modals.html',
'employees/components/department_styles.html',
'employees/components/department_scripts.html',
]
print("\nКомпоненты:")
for comp in components:
try:
loader.get_template(comp)
print(f" ✓ {comp}")
except Exception as e:
print(f" ❌ {comp}: {e}")
# Проверяем календарь
print("\nКомпоненты календаря:")
calendar_components = [
'includes/calendar/calendar_styles.html',
'includes/calendar/calendar_widget.html',
'includes/calendar/calendar_events_list.html',
'includes/calendar/calendar_modals.html',
'includes/calendar/calendar_scripts.html',
]
for comp in calendar_components:
try:
loader.get_template(comp)
print(f" ✓ {comp}")
except Exception as e:
print(f" ❌ {comp}: {e}")
print("\n=== Проверка размеров компонентов ===\n")
from django.conf import settings
templates_dir = Path(settings.BASE_DIR) / 'templates'
for comp in components:
file_path = templates_dir / comp
if file_path.exists():
lines = len(file_path.read_text(encoding='utf-8').splitlines())
size = file_path.stat().st_size
print(f" {comp}: {lines} строк, {size} байт")
else:
print(f" ❌ {comp}: файл не найден")
def check_base_template():
"""Проверка base.html"""
print("\n=== Проверка base.html ===\n")
try:
template = loader.get_template('base.html')
print("✓ base.html загружен")
# Проверяем, что в нём есть блоки
from django.conf import settings
base_path = Path(settings.BASE_DIR) / 'templates' / 'base.html'
content = base_path.read_text(encoding='utf-8')
checks = [
('{% block extra_css %}', 'Блок extra_css'),
('{% block extra_js %}', 'Блок extra_js'),
('{% include "includes/rightbar_calendar.html" %}', 'Include календаря'),
('bootstrap.bundle.min.js', 'Bootstrap JS'),
('fullcalendar', 'FullCalendar JS'),
]
for pattern, description in checks:
if pattern in content:
print(f" ✓ {description}")
else:
print(f" ❌ {description} НЕ НАЙДЕН!")
except Exception as e:
print(f"❌ Ошибка: {e}")
if __name__ == '__main__':
diagnose_department_page()
check_base_template()