{% extends "base.html" %} {% block title %}Panel Audyt Social Media - Norda Biznes Partner{% endblock %} {% block extra_css %} {% endblock %} {% block content %}

Panel Audyt Social Media

Analiza obecnosci w mediach spolecznosciowych czlonkow Norda Biznes

Dane z Facebook, Instagram, LinkedIn, YouTube, Twitter/X, TikTok
Szczegoly
{{ stats.total_companies }} Wszystkich firm
{{ stats.companies_with_sm }} Z Social Media
{{ stats.companies_without_sm }} Bez Social Media
{{ stats.total_profiles }} Lacznie profili
{{ "{:,}".format(stats.total_followers).replace(",", " ") }} Lacznie obserwujacych

Pokrycie platform

{% set platform_icons = { 'facebook': '', 'instagram': '', 'linkedin': '', 'youtube': '', 'twitter': '', 'tiktok': '' } %} {% for platform in platforms %}
{{ platform_icons[platform]|safe }}
{{ platform|capitalize }}
{{ stats.platform_stats[platform].count }} firm
{{ stats.platform_stats[platform].percent }}%
{% endfor %}
{% if top_followers %}

Top 10 - Najwiecej obserwujacych

{% for company in top_followers %}
{{ loop.index }}
{{ "{:,}".format(company.total_followers).replace(",", " ") }} obserwujacych
{% endfor %}
{% endif %}
{% if companies %}
{% for company in companies %} {% endfor %}
Firma Kategoria Platformy Liczba Obserwujacy Weryfikacja Akcje
{{ company.name }} {{ company.category or 'Inne' }}
{{ company.platform_count }} {% if company.total_followers > 0 %} {{ "{:,}".format(company.total_followers).replace(",", " ") }} {% else %} - {% endif %} {% if company.last_verified %} {% set days_ago = (now - company.last_verified).days %} {{ company.last_verified.strftime('%d.%m.%Y') }} {% else %} - {% endif %}
{% else %}

Brak firm do wyswietlenia

Nie znaleziono firm z danymi Social Media.

{% endif %} {% endblock %} {% block extra_js %} // Sorting state let currentSort = { column: 'platforms', direction: 'desc' }; // Sort table function sortTable(column) { const tbody = document.getElementById('socialTableBody'); const rows = Array.from(tbody.querySelectorAll('tr')); const headers = document.querySelectorAll('.social-table th[data-sort]'); // Toggle direction if same column if (currentSort.column === column) { currentSort.direction = currentSort.direction === 'asc' ? 'desc' : 'asc'; } else { currentSort.column = column; currentSort.direction = 'desc'; } // Update header classes headers.forEach(h => { h.classList.remove('sorted', 'sorted-asc', 'sorted-desc'); if (h.dataset.sort === column) { h.classList.add('sorted', `sorted-${currentSort.direction}`); } }); // Sort rows rows.sort((a, b) => { let aVal, bVal; if (column === 'name') { aVal = a.dataset.name || ''; bVal = b.dataset.name || ''; } else if (column === 'category') { aVal = a.dataset.category || ''; bVal = b.dataset.category || ''; } else if (column === 'date') { aVal = new Date(a.dataset.date).getTime(); bVal = new Date(b.dataset.date).getTime(); } else { aVal = parseFloat(a.dataset[column]) || -1; bVal = parseFloat(b.dataset[column]) || -1; } if (aVal < bVal) return currentSort.direction === 'asc' ? -1 : 1; if (aVal > bVal) return currentSort.direction === 'asc' ? 1 : -1; return 0; }); // Re-append rows rows.forEach(row => tbody.appendChild(row)); } // Setup sorting click handlers document.querySelectorAll('.social-table th[data-sort]').forEach(th => { th.addEventListener('click', () => sortTable(th.dataset.sort)); }); // Filtering function applyFilters() { const category = document.getElementById('filterCategory').value; const platform = document.getElementById('filterPlatform').value; const search = document.getElementById('filterSearch').value.toLowerCase(); const rows = document.querySelectorAll('#socialTableBody tr'); rows.forEach(row => { let show = true; // Category filter if (category && row.dataset.category !== category) { show = false; } // Platform filter if (platform && show) { if (platform === 'none') { if (parseInt(row.dataset.platforms) > 0) show = false; } else { const hasPlatform = row.dataset[`has${platform.charAt(0).toUpperCase() + platform.slice(1)}`] === 'true'; if (!hasPlatform) show = false; } } // Search filter if (search && show) { if (!row.dataset.name.includes(search)) { show = false; } } row.style.display = show ? '' : 'none'; }); } function resetFilters() { document.getElementById('filterCategory').value = ''; document.getElementById('filterPlatform').value = ''; document.getElementById('filterSearch').value = ''; applyFilters(); } {% endblock %}