Some checks are pending
NordaBiz Tests / Unit & Integration Tests (push) Waiting to run
NordaBiz Tests / E2E Tests (Playwright) (push) Blocked by required conditions
NordaBiz Tests / Smoke Tests (Production) (push) Blocked by required conditions
NordaBiz Tests / Send Failure Notification (push) Blocked by required conditions
Production moved from on-prem VM 249 (10.22.68.249) to OVH VPS (57.128.200.27, inpi-vps-waw01). Updated ALL documentation, slash commands, memory files, architecture docs, and deploy procedures. Added |local_time Jinja filter (UTC→Europe/Warsaw) and converted 155 .strftime() calls across 71 templates so timestamps display in Polish timezone regardless of server timezone. Also includes: created_by_id tracking, abort import fix, ICS calendar fix for missing end times, Pros Poland data cleanup. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
451 lines
23 KiB
HTML
451 lines
23 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}PEJ — Elektrownia Jądrowa - Norda Biznes Partner{% endblock %}
|
|
|
|
{% block extra_css %}
|
|
<style>
|
|
.pej-hero {
|
|
background: #1a365d;
|
|
color: #fff;
|
|
padding: var(--spacing-2xl) 0;
|
|
margin: calc(-1 * var(--spacing-lg)) calc(-1 * var(--spacing-lg)) var(--spacing-xl);
|
|
text-align: center;
|
|
}
|
|
.pej-hero h1 { font-size: 2rem; margin-bottom: var(--spacing-sm); }
|
|
.pej-hero p { opacity: 0.9; max-width: 600px; margin: 0 auto; font-size: var(--font-size-md); }
|
|
|
|
.pej-stats {
|
|
display: flex; justify-content: center; gap: var(--spacing-xl);
|
|
padding: var(--spacing-md) 0;
|
|
margin-bottom: var(--spacing-xl);
|
|
}
|
|
.pej-stat { text-align: center; }
|
|
.pej-stat-value { font-size: 2rem; font-weight: 700; color: #1a365d; }
|
|
.pej-stat-label { font-size: var(--font-size-sm); color: var(--text-secondary); }
|
|
|
|
.pej-section { margin-bottom: var(--spacing-xl); }
|
|
.pej-section-title {
|
|
font-size: var(--font-size-lg); font-weight: 600;
|
|
margin-bottom: var(--spacing-md);
|
|
display: flex; align-items: center; gap: var(--spacing-sm);
|
|
}
|
|
|
|
.pej-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-lg); }
|
|
@media (max-width: 768px) { .pej-grid { grid-template-columns: 1fr; } }
|
|
|
|
.pej-announcement {
|
|
background: #eef2f7; border: 1px solid #c3d5e8; border-radius: var(--radius);
|
|
padding: var(--spacing-md); margin-bottom: var(--spacing-sm);
|
|
}
|
|
.pej-announcement-title { font-weight: 600; margin-bottom: var(--spacing-xs); }
|
|
.pej-announcement-date { font-size: var(--font-size-sm); color: var(--text-secondary); }
|
|
|
|
.pej-news-card {
|
|
background: var(--surface); border: 1px solid var(--border);
|
|
border-radius: var(--radius); padding: var(--spacing-md);
|
|
margin-bottom: var(--spacing-sm); transition: var(--transition);
|
|
}
|
|
.pej-news-card:hover { border-color: #1a365d; }
|
|
.pej-news-card h3 { font-size: var(--font-size-md); margin-bottom: var(--spacing-xs); }
|
|
.pej-news-card h3 a { color: var(--text-primary); text-decoration: none; }
|
|
.pej-news-card h3 a:hover { color: #1a365d; }
|
|
.pej-news-card .meta { font-size: var(--font-size-sm); color: var(--text-secondary); }
|
|
|
|
.pej-milestone {
|
|
display: flex; gap: var(--spacing-md); padding: var(--spacing-sm) 0;
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
.pej-milestone:last-child { border-bottom: none; }
|
|
.pej-milestone-date {
|
|
min-width: 80px; font-size: var(--font-size-sm); color: #1a365d; font-weight: 600;
|
|
}
|
|
.pej-milestone-title { font-size: var(--font-size-sm); }
|
|
.pej-milestone-status {
|
|
font-size: 0.7rem; padding: 2px 6px; border-radius: 10px;
|
|
display: inline-block; margin-left: var(--spacing-xs);
|
|
}
|
|
.pej-milestone-status.planned { background: #dbeafe; color: #1e40af; }
|
|
.pej-milestone-status.in_progress { background: #fef3c7; color: #92400e; }
|
|
.pej-milestone-status.completed { background: #d1fae5; color: #065f46; }
|
|
.pej-milestone-status.delayed { background: #fee2e2; color: #991b1b; }
|
|
|
|
.pej-company-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-md); }
|
|
@media (max-width: 768px) { .pej-company-grid { grid-template-columns: 1fr; } }
|
|
@media (min-width: 769px) and (max-width: 1024px) { .pej-company-grid { grid-template-columns: repeat(2, 1fr); } }
|
|
|
|
.pej-company-card {
|
|
background: var(--surface); border: 1px solid var(--border);
|
|
border-radius: var(--radius); padding: var(--spacing-md);
|
|
transition: var(--transition);
|
|
}
|
|
.pej-company-card:hover { border-color: #1a365d; box-shadow: 0 2px 8px rgba(26,54,93,0.1); }
|
|
.pej-company-name { font-weight: 600; margin-bottom: var(--spacing-xs); }
|
|
.pej-company-name a { color: var(--text-primary); text-decoration: none; }
|
|
.pej-company-name a:hover { color: #1a365d; }
|
|
.pej-company-meta { font-size: var(--font-size-sm); color: var(--text-secondary); }
|
|
.pej-company-score {
|
|
display: inline-block; background: #eef2f7; color: #1a365d;
|
|
padding: 2px 8px; border-radius: 10px; font-size: var(--font-size-sm); font-weight: 600;
|
|
}
|
|
.pej-company-type {
|
|
display: inline-block; background: #dbeafe; color: #1e40af;
|
|
padding: 2px 8px; border-radius: 10px; font-size: 0.75rem;
|
|
}
|
|
.pej-company-desc {
|
|
font-size: var(--font-size-sm); color: var(--text-secondary);
|
|
margin-top: var(--spacing-xs);
|
|
}
|
|
|
|
.pej-cta {
|
|
text-align: center; margin-top: var(--spacing-lg);
|
|
display: flex; gap: var(--spacing-md); justify-content: center; flex-wrap: wrap;
|
|
}
|
|
.pej-btn {
|
|
display: inline-block; padding: var(--spacing-sm) var(--spacing-lg);
|
|
border-radius: var(--radius); text-decoration: none; font-weight: 500;
|
|
transition: var(--transition);
|
|
}
|
|
.pej-btn-primary { background: #1a365d; color: #fff; }
|
|
.pej-btn-primary:hover { background: #0f2440; }
|
|
.pej-btn-outline { border: 1px solid #1a365d; color: #1a365d; }
|
|
.pej-btn-outline:hover { background: #eef2f7; }
|
|
|
|
.pej-media-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-lg); }
|
|
@media (max-width: 768px) { .pej-media-grid { grid-template-columns: 1fr; } }
|
|
.pej-video-card {
|
|
display: block; text-decoration: none; border-radius: var(--radius);
|
|
border: 1px solid var(--border); overflow: hidden; transition: var(--transition);
|
|
}
|
|
.pej-video-card:hover { border-color: #1a365d; box-shadow: 0 2px 8px rgba(26,54,93,0.1); }
|
|
.pej-video-thumb {
|
|
position: relative; padding-bottom: 56.25%; background: #000;
|
|
}
|
|
.pej-video-thumb img {
|
|
position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;
|
|
}
|
|
.pej-video-play {
|
|
position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
|
|
width: 60px; height: 60px; background: rgba(26,54,93,0.85); border-radius: 50%;
|
|
display: flex; align-items: center; justify-content: center;
|
|
}
|
|
.pej-video-play::after {
|
|
content: ''; width: 0; height: 0;
|
|
border-left: 20px solid #fff; border-top: 12px solid transparent; border-bottom: 12px solid transparent;
|
|
margin-left: 4px;
|
|
}
|
|
.pej-video-title {
|
|
padding: var(--spacing-sm) var(--spacing-md);
|
|
font-size: var(--font-size-sm); font-weight: 500; color: var(--text-primary);
|
|
}
|
|
.pej-infographic {
|
|
border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden;
|
|
background: #fff;
|
|
}
|
|
.pej-infographic img { width: 100%; height: auto; display: block; }
|
|
.pej-infographic-caption {
|
|
padding: var(--spacing-sm) var(--spacing-md);
|
|
font-size: var(--font-size-sm); color: var(--text-secondary);
|
|
border-top: 1px solid var(--border);
|
|
}
|
|
|
|
.pej-empty { text-align: center; padding: var(--spacing-xl); color: var(--text-secondary); }
|
|
|
|
.pej-sources { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-lg); }
|
|
@media (max-width: 768px) { .pej-sources { grid-template-columns: 1fr; } }
|
|
.pej-source-group { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: var(--spacing-md); }
|
|
.pej-source-group h3 { font-size: var(--font-size-md); font-weight: 600; margin-bottom: var(--spacing-sm); color: #1a365d; }
|
|
.pej-source-item { display: flex; align-items: flex-start; gap: var(--spacing-sm); padding: var(--spacing-xs) 0; }
|
|
.pej-source-item { transition: var(--transition); border-radius: var(--radius); padding: var(--spacing-sm); margin: 0 calc(-1 * var(--spacing-sm)); }
|
|
.pej-source-item:hover { background: #eef2f7; }
|
|
.pej-source-item a { color: var(--text-primary); text-decoration: none; font-size: var(--font-size-sm); }
|
|
.pej-source-item a:hover { color: #2563eb; }
|
|
.pej-source-item a strong { color: #1a365d; }
|
|
.pej-source-item .pej-src-label { font-size: 0.75rem; color: var(--text-secondary); }
|
|
.pej-source-icon { min-width: 24px; width: 24px; height: 24px; color: #1a365d; font-size: var(--font-size-md); display: flex; align-items: center; justify-content: center; }
|
|
.pej-contact-card {
|
|
background: #eef2f7; border-radius: var(--radius); padding: var(--spacing-md);
|
|
margin-bottom: var(--spacing-sm); transition: var(--transition);
|
|
border-left: 3px solid transparent; cursor: default;
|
|
}
|
|
.pej-contact-card:hover { border-left-color: #2563eb; background: #e8eef5; }
|
|
.pej-contact-card a { color: #2563eb; text-decoration: none; font-size: var(--font-size-sm); }
|
|
.pej-contact-card a:hover { text-decoration: underline; }
|
|
.pej-contact-name { font-weight: 600; display: flex; align-items: center; gap: var(--spacing-sm); }
|
|
.pej-contact-role { font-size: var(--font-size-sm); color: var(--text-secondary); }
|
|
.pej-contact-details { font-size: var(--font-size-sm); margin-top: var(--spacing-xs); }
|
|
</style>
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="pej-hero">
|
|
<h1>Elektrownia Jądrowa — Szanse dla Naszych Firm</h1>
|
|
<p>Izba Norda Biznes aktywnie uczestniczy w projekcie PEJ. Tu znajdziesz aktualności, listę firm gotowych do współpracy i informacje o możliwościach dla członków.</p>
|
|
</div>
|
|
|
|
<div class="pej-stats">
|
|
<div class="pej-stat">
|
|
<div class="pej-stat-value">{{ companies_count }}</div>
|
|
<div class="pej-stat-label">firm gotowych</div>
|
|
</div>
|
|
<div class="pej-stat">
|
|
<div class="pej-stat-value">{{ news_count }}</div>
|
|
<div class="pej-stat-label">aktualności</div>
|
|
</div>
|
|
<div class="pej-stat">
|
|
<div class="pej-stat-value">{{ milestones_count }}</div>
|
|
<div class="pej-stat-label">kamieni milowych</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% if announcements %}
|
|
<div class="pej-section">
|
|
<div class="pej-section-title">Komunikaty Izby</div>
|
|
{% for ann in announcements %}
|
|
<div class="pej-announcement">
|
|
<div class="pej-announcement-title">{{ ann.title }}</div>
|
|
<div class="pej-announcement-date">{{ ann.created_at|local_time('%d.%m.%Y') }}</div>
|
|
<p>{{ ann.content[:300] }}{% if ann.content|length > 300 %}...{% endif %}</p>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div class="pej-grid">
|
|
<div class="pej-section">
|
|
<div class="pej-section-title">Najnowsze aktualności</div>
|
|
{% if news %}
|
|
{% for item in news %}
|
|
<div class="pej-news-card">
|
|
<h3><a href="{{ item.url }}" target="_blank" rel="noopener">{{ item.title }}</a></h3>
|
|
<div class="meta">
|
|
{{ item.source_name or item.source_domain or '' }}
|
|
{% if item.published_at %} · {{ item.published_at|local_time('%d.%m.%Y') }}{% endif %}
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
<a href="{{ url_for('pej_news') }}" class="pej-btn pej-btn-outline" style="margin-top: var(--spacing-sm); display: inline-block;">Zobacz wszystkie →</a>
|
|
{% else %}
|
|
<div class="pej-empty">Brak aktualności nuklearnych.</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="pej-section">
|
|
<div class="pej-section-title">Kamienie milowe</div>
|
|
{% if milestones %}
|
|
{% for m in milestones %}
|
|
<div class="pej-milestone">
|
|
<div class="pej-milestone-date">
|
|
{% if m.target_date %}{{ m.target_date.strftime('%m/%Y') }}{% else %}—{% endif %}
|
|
</div>
|
|
<div>
|
|
<span class="pej-milestone-title">{{ m.title }}</span>
|
|
<span class="pej-milestone-status {{ m.status }}">{{ m.status }}</span>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
{% else %}
|
|
<div class="pej-empty">Brak kamieni milowych.</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="pej-section">
|
|
<div class="pej-section-title">Multimedia</div>
|
|
<div class="pej-media-grid">
|
|
<div>
|
|
<a href="https://www.youtube.com/watch?v=Ne7Nwo3sGSg" target="_blank" rel="noopener" class="pej-video-card">
|
|
<div class="pej-video-thumb">
|
|
<img src="{{ url_for('static', filename='images/pej/yt-Ne7Nwo3sGSg.jpg') }}" alt="Wirtualny spacer po elektrowni jądrowej" loading="lazy">
|
|
<div class="pej-video-play"></div>
|
|
</div>
|
|
<div class="pej-video-title">Wirtualny spacer po elektrowni jądrowej z perspektywy dozoru</div>
|
|
</a>
|
|
</div>
|
|
<div>
|
|
<a href="https://www.youtube.com/watch?v=VnNmsntBHsg" target="_blank" rel="noopener" class="pej-video-card">
|
|
<div class="pej-video-thumb">
|
|
<img src="{{ url_for('static', filename='images/pej/yt-VnNmsntBHsg.jpg') }}" alt="Elektrownia jądrowa Lubiatowo-Kopalino" loading="lazy">
|
|
<div class="pej-video-play"></div>
|
|
</div>
|
|
<div class="pej-video-title">Elektrownia jądrowa Lubiatowo-Kopalino</div>
|
|
</a>
|
|
</div>
|
|
<div>
|
|
<div class="pej-infographic">
|
|
<a href="{{ url_for('static', filename='images/pej/elementy-bloku-ej.png') }}" target="_blank" rel="noopener">
|
|
<img src="{{ url_for('static', filename='images/pej/elementy-bloku-ej.png') }}" alt="Elementy bloku elektrowni jądrowej" loading="lazy">
|
|
</a>
|
|
<div class="pej-infographic-caption">Elementy bloku elektrowni jądrowej AP1000</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="pej-infographic">
|
|
<a href="{{ url_for('static', filename='images/pej/harmonogram-budowy.png') }}" target="_blank" rel="noopener">
|
|
<img src="{{ url_for('static', filename='images/pej/harmonogram-budowy.png') }}" alt="Harmonogram budowy elektrowni jądrowej" loading="lazy">
|
|
</a>
|
|
<div class="pej-infographic-caption">Harmonogram budowy elektrowni jądrowej (luty 2026)</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="pej-section">
|
|
<div class="pej-section-title">Źródła i kontakty PEJ</div>
|
|
<div class="pej-sources">
|
|
<div class="pej-source-group">
|
|
<h3>Jak zostać dostawcą PEJ</h3>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">✉</span>
|
|
<div>
|
|
<a href="mailto:dostawcy@pej.pl"><strong>dostawcy@pej.pl</strong></a>
|
|
<div class="pej-src-label">Rejestracja dostawców — wyślij: nazwę firmy, NIP, branżę, osobę kontaktową</div>
|
|
</div>
|
|
</div>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">🛒</span>
|
|
<div>
|
|
<a href="https://pz.pej.pl/" target="_blank" rel="noopener"><strong>pz.pej.pl</strong> — Platforma zakupowa PEJ</a>
|
|
<div class="pej-src-label">Przetargi i aukcje otwarte (43 planowane do końca 2026)</div>
|
|
</div>
|
|
</div>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">🎓</span>
|
|
<div>
|
|
<a href="https://polskaplatformajadrowa.pl/" target="_blank" rel="noopener"><strong>Polska Platforma Jądrowa</strong></a>
|
|
<div class="pej-src-label">Newsletter, grupy tematyczne dla polskich dostawców</div>
|
|
</div>
|
|
</div>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">📄</span>
|
|
<div>
|
|
<a href="https://pej.pl/en/for-suppliers/notice-board/" target="_blank" rel="noopener"><strong>Notice Board</strong> — ogłoszenia Bechtel i Westinghouse</a>
|
|
<div class="pej-src-label">Aktualne zapotrzebowanie technologiczne i usługowe</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="pej-source-group">
|
|
<h3>Osoby kontaktowe i biuro PEJ</h3>
|
|
<div class="pej-contact-card">
|
|
<div class="pej-contact-name">Grzegorz Maj</div>
|
|
<div class="pej-contact-role">Pełnomocnik Zarządu ds. Wsparcia Rozwoju Rynku (Local Content)</div>
|
|
<div class="pej-contact-details">
|
|
<a href="https://www.linkedin.com/in/grzegorz-maj-80145574/" target="_blank" rel="noopener">LinkedIn →</a>
|
|
</div>
|
|
</div>
|
|
<div class="pej-contact-card">
|
|
<div class="pej-contact-name">Marek Woszczyk</div>
|
|
<div class="pej-contact-role">Prezes Zarządu PEJ</div>
|
|
<div class="pej-contact-details">
|
|
<a href="https://www.linkedin.com/in/marek-woszczyk-emba-1670a969/" target="_blank" rel="noopener">LinkedIn →</a>
|
|
</div>
|
|
</div>
|
|
<div class="pej-contact-card">
|
|
<div class="pej-contact-name">Leszek Hołda</div>
|
|
<div class="pej-contact-role">Prezes Bechtel Polska</div>
|
|
<div class="pej-contact-details">
|
|
<a href="https://www.linkedin.com/in/leszekholda/" target="_blank" rel="noopener">LinkedIn →</a>
|
|
</div>
|
|
</div>
|
|
<div class="pej-contact-card" style="background: #e8eef5; border-left-color: #1a365d;">
|
|
<div class="pej-contact-name">Biuro PEJ</div>
|
|
<div class="pej-contact-role">Al. Jerozolimskie 132/136, 02-305 Warszawa</div>
|
|
<div class="pej-contact-details">
|
|
<a href="tel:+48223402980">+48 22 340 2980</a> ·
|
|
<a href="mailto:korespondencja@pej.pl">korespondencja@pej.pl</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="pej-source-group">
|
|
<h3>Oficjalne strony projektu</h3>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">🏢</span>
|
|
<div><a href="https://pej.pl/" target="_blank" rel="noopener"><strong>pej.pl</strong> — Polskie Elektrownie Jądrowe</a></div>
|
|
</div>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">☢</span>
|
|
<div>
|
|
<a href="https://www.gov.pl/web/paa" target="_blank" rel="noopener"><strong>PAA</strong> — Państwowa Agencja Atomistyki</a>
|
|
<div class="pej-src-label">Regulator — proces licencyjny, pozwolenie na budowę</div>
|
|
</div>
|
|
</div>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">🇧</span>
|
|
<div><a href="https://www.gov.pl/web/polski-atom" target="_blank" rel="noopener"><strong>Polski Atom</strong> — portal rządowy</a></div>
|
|
</div>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">🇬</span>
|
|
<div><a href="https://www.westinghousenuclear.com" target="_blank" rel="noopener"><strong>Westinghouse</strong> — technologia AP1000</a></div>
|
|
</div>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">🏗</span>
|
|
<div><a href="https://www.bechtel.com/markets/nuclear-power/" target="_blank" rel="noopener"><strong>Bechtel</strong> — generalny wykonawca</a></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="pej-source-group">
|
|
<h3>Śledź PEJ w mediach</h3>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">in</span>
|
|
<div><a href="https://www.linkedin.com/company/polskieelektrowniejadrowe/" target="_blank" rel="noopener"><strong>PEJ na LinkedIn</strong> (~16 tys. obserwujących)</a></div>
|
|
</div>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">𝕏</span>
|
|
<div><a href="https://x.com/pej_pl" target="_blank" rel="noopener"><strong>@PEJ_PL</strong> na X</a></div>
|
|
</div>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">𝕏</span>
|
|
<div><a href="https://x.com/WECNuclearPL" target="_blank" rel="noopener"><strong>@WECNuclearPL</strong> — Westinghouse Polska na X</a></div>
|
|
</div>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">f</span>
|
|
<div><a href="https://www.facebook.com/polskiatom.govpl/" target="_blank" rel="noopener"><strong>Polski Atom</strong> na Facebooku</a></div>
|
|
</div>
|
|
<div class="pej-source-item">
|
|
<span class="pej-source-icon">📰</span>
|
|
<div>
|
|
<a href="https://nuclear.pl/" target="_blank" rel="noopener"><strong>nuclear.pl</strong></a> ·
|
|
<a href="https://biznesalert.pl/" target="_blank" rel="noopener"><strong>BiznesAlert</strong></a> ·
|
|
<a href="https://energetyka24.com/" target="_blank" rel="noopener"><strong>Energetyka24</strong></a>
|
|
<div class="pej-src-label">Portale informacyjne z sekcjami nuklearnymi</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="pej-section">
|
|
<div class="pej-section-title">Local Content — Firmy z Izby gotowe do współpracy</div>
|
|
{% if top_companies %}
|
|
<div class="pej-company-grid">
|
|
{% for link, company in top_companies %}
|
|
<div class="pej-company-card">
|
|
<div class="pej-company-name">
|
|
<a href="{{ url_for('company_detail_by_slug', slug=company.slug) }}">{{ company.name }}</a>
|
|
</div>
|
|
<div class="pej-company-meta">
|
|
{% if company.category %}<span>{{ company.category.name }}</span>{% endif %}
|
|
<span class="pej-company-score">{{ link.relevance_score }}/100</span>
|
|
{% if link.link_type %}
|
|
<span class="pej-company-type">{{ link_type_labels.get(link.link_type, link.link_type) }}</span>
|
|
{% endif %}
|
|
</div>
|
|
{% if link.collaboration_description %}
|
|
<div class="pej-company-desc">{{ link.collaboration_description[:150] }}{% if link.collaboration_description|length > 150 %}...{% endif %}</div>
|
|
{% endif %}
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
<div class="pej-cta">
|
|
<a href="{{ url_for('pej_local_content') }}" class="pej-btn pej-btn-primary">Zobacz pełną listę →</a>
|
|
{% if current_user.can_access_admin_panel() %}
|
|
<a href="{{ url_for('admin.pej_export_csv') }}" class="pej-btn pej-btn-outline">Eksportuj CSV</a>
|
|
{% endif %}
|
|
</div>
|
|
{% else %}
|
|
<div class="pej-empty">Brak dopasowanych firm.</div>
|
|
{% endif %}
|
|
</div>
|
|
{% endblock %}
|