feat: Show application status banner instead of join CTA for pending applications
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
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
- Check for pending membership application on homepage - Show blue "Deklaracja w toku" banner with status info - Different messages for: draft, submitted, under_review, pending_user_approval, changes_requested - Link to membership status page instead of application form Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
de281e5bda
commit
4eadcd9a8d
@ -39,6 +39,7 @@ from database import (
|
||||
AIChatMessage,
|
||||
UserSession,
|
||||
SearchQuery,
|
||||
MembershipApplication,
|
||||
)
|
||||
from utils.helpers import sanitize_input
|
||||
from extensions import limiter
|
||||
@ -107,6 +108,14 @@ def index():
|
||||
).first() is not None
|
||||
user_can_attend = next_event.can_user_attend(current_user)
|
||||
|
||||
# Sprawdź czy użytkownik ma deklarację członkowską w toku
|
||||
pending_application = None
|
||||
if not current_user.is_norda_member and not current_user.company_id:
|
||||
pending_application = db.query(MembershipApplication).filter(
|
||||
MembershipApplication.user_id == current_user.id,
|
||||
MembershipApplication.status.in_(['draft', 'submitted', 'under_review', 'pending_user_approval', 'changes_requested'])
|
||||
).first()
|
||||
|
||||
return render_template(
|
||||
'index.html',
|
||||
companies=companies,
|
||||
@ -116,7 +125,8 @@ def index():
|
||||
total_categories=total_categories,
|
||||
next_event=next_event,
|
||||
user_registered=user_registered,
|
||||
user_can_attend=user_can_attend
|
||||
user_can_attend=user_can_attend,
|
||||
pending_application=pending_application
|
||||
)
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
@ -802,25 +802,55 @@
|
||||
{% block content %}
|
||||
<!-- Header - różny dla członków i nie-członków -->
|
||||
{% if current_user.is_authenticated and not current_user.is_norda_member and not current_user.company_id %}
|
||||
<!-- Banner CTA dla nie-członków NORDA -->
|
||||
<a href="{{ url_for('membership.apply') }}" class="membership-header" data-animate="fadeIn" style="display: flex; align-items: center; gap: var(--spacing-xl); padding: var(--spacing-xl); background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%); border-radius: var(--radius-lg); margin-bottom: var(--spacing-xl); text-decoration: none; color: white;">
|
||||
<div style="font-size: 3rem;">🤝</div>
|
||||
<div style="flex: 1;">
|
||||
<h1 style="font-size: var(--font-size-2xl); margin-bottom: var(--spacing-xs); font-weight: 700;">
|
||||
Dołącz do Izby Przedsiębiorców NORDA
|
||||
</h1>
|
||||
<p style="font-size: var(--font-size-md); opacity: 0.9; margin: 0;">
|
||||
Złóż deklarację członkowską i zyskaj pełny dostęp do katalog {{ total_companies }} firm, wydarzeń i funkcji portalu
|
||||
</p>
|
||||
{% if pending_application %}
|
||||
<!-- Banner dla użytkownika z deklaracją w toku -->
|
||||
<a href="{{ url_for('membership.status') }}" class="membership-header" data-animate="fadeIn" style="display: flex; align-items: center; gap: var(--spacing-xl); padding: var(--spacing-xl); background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%); border-radius: var(--radius-lg); margin-bottom: var(--spacing-xl); text-decoration: none; color: white;">
|
||||
<div style="font-size: 3rem;">📋</div>
|
||||
<div style="flex: 1;">
|
||||
<h1 style="font-size: var(--font-size-2xl); margin-bottom: var(--spacing-xs); font-weight: 700;">
|
||||
Deklaracja członkowska w toku
|
||||
</h1>
|
||||
<p style="font-size: var(--font-size-md); opacity: 0.9; margin: 0;">
|
||||
{% if pending_application.status == 'submitted' or pending_application.status == 'under_review' %}
|
||||
Twoja deklaracja dla firmy "{{ pending_application.company_name }}" oczekuje na rozpatrzenie
|
||||
{% elif pending_application.status == 'pending_user_approval' %}
|
||||
Administrator zaproponował zmiany - sprawdź i zaakceptuj
|
||||
{% elif pending_application.status == 'changes_requested' %}
|
||||
Wymagane są poprawki w Twojej deklaracji
|
||||
{% else %}
|
||||
Kontynuuj wypełnianie deklaracji dla firmy "{{ pending_application.company_name or 'Twoja firma' }}"
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
<div style="background: white; color: #1d4ed8; padding: var(--spacing-md) var(--spacing-xl); border-radius: var(--radius); font-weight: 700; font-size: var(--font-size-lg); white-space: nowrap;">
|
||||
{% if pending_application.status == 'draft' %}Kontynuuj →{% else %}Sprawdź status →{% endif %}
|
||||
</div>
|
||||
</a>
|
||||
<div style="background: #dbeafe; border: 1px solid #93c5fd; padding: var(--spacing-md); border-radius: var(--radius); margin-bottom: var(--spacing-xl); display: flex; align-items: center; gap: var(--spacing-sm);">
|
||||
<span style="font-size: 1.2rem;">⏳</span>
|
||||
<span style="color: #1e40af;">Przeglądasz listę firm Izby NORDA. Pełny dostęp do szczegółów firm otrzymasz po zatwierdzeniu deklaracji.</span>
|
||||
</div>
|
||||
<div style="background: white; color: #16a34a; padding: var(--spacing-md) var(--spacing-xl); border-radius: var(--radius); font-weight: 700; font-size: var(--font-size-lg); white-space: nowrap;">
|
||||
Złóż deklarację →
|
||||
{% else %}
|
||||
<!-- Banner CTA dla nie-członków NORDA bez deklaracji -->
|
||||
<a href="{{ url_for('membership.apply') }}" class="membership-header" data-animate="fadeIn" style="display: flex; align-items: center; gap: var(--spacing-xl); padding: var(--spacing-xl); background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%); border-radius: var(--radius-lg); margin-bottom: var(--spacing-xl); text-decoration: none; color: white;">
|
||||
<div style="font-size: 3rem;">🤝</div>
|
||||
<div style="flex: 1;">
|
||||
<h1 style="font-size: var(--font-size-2xl); margin-bottom: var(--spacing-xs); font-weight: 700;">
|
||||
Dołącz do Izby Przedsiębiorców NORDA
|
||||
</h1>
|
||||
<p style="font-size: var(--font-size-md); opacity: 0.9; margin: 0;">
|
||||
Złóż deklarację członkowską i zyskaj pełny dostęp do katalog {{ total_companies }} firm, wydarzeń i funkcji portalu
|
||||
</p>
|
||||
</div>
|
||||
<div style="background: white; color: #16a34a; padding: var(--spacing-md) var(--spacing-xl); border-radius: var(--radius); font-weight: 700; font-size: var(--font-size-lg); white-space: nowrap;">
|
||||
Złóż deklarację →
|
||||
</div>
|
||||
</a>
|
||||
<div style="background: #fef3c7; border: 1px solid #fde68a; padding: var(--spacing-md); border-radius: var(--radius); margin-bottom: var(--spacing-xl); display: flex; align-items: center; gap: var(--spacing-sm);">
|
||||
<span style="font-size: 1.2rem;">🔒</span>
|
||||
<span style="color: #92400e;">Przeglądasz listę firm Izby NORDA. Aby zobaczyć szczegóły każdej firmy, złóż deklarację członkowską.</span>
|
||||
</div>
|
||||
</a>
|
||||
<div style="background: #fef3c7; border: 1px solid #fde68a; padding: var(--spacing-md); border-radius: var(--radius); margin-bottom: var(--spacing-xl); display: flex; align-items: center; gap: var(--spacing-sm);">
|
||||
<span style="font-size: 1.2rem;">🔒</span>
|
||||
<span style="color: #92400e;">Przeglądasz listę firm Izby NORDA. Aby zobaczyć szczegóły każdej firmy, złóż deklarację członkowską.</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<!-- Standardowy nagłówek dla członków -->
|
||||
<div style="background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: white; padding: var(--spacing-xl); border-radius: var(--radius-lg); margin-bottom: var(--spacing-xl); text-align: center;">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user