Files
conference/templates/attendee/payment.html
T
paul a3546b4c01 Security hardening: env-based config, CSRF protection, secure code generation, plus presenter management and email communications system
- Move all credentials from hardcoded to .env with python-dotenv (add .env.example template and .gitignore)
- Add CSRF token generation and validation on all state-changing requests
- Replace random.choices with secrets.choice for all secure code generation
- Add session cookie security headers (HttpOnly, Secure, SameSite)
- Add presenter management: assign/remove presenters to breakout sessions, presenter QR scanning
- Add email communications system: templates per event, custom email sending, sent email tracking
- Add staff/organizer profile pages with staff code display
- New DB tables: event_email_templates, sent_emails, user_communications
- New DB columns: staff.reminder_count/reminder_dates, breakout_session_organizers.presenter_code
- Expand English translation strings across all new features

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-26 20:34:48 +00:00

46 lines
1.8 KiB
HTML

{% extends "base.html" %}
{% block title %}{{ 'payment'|t }} - {{ event.name }} - NetEvents{% endblock %}
{% block content %}
<div class="payment-page">
<a href="{{ url_for('register_event', code=event.code) }}" class="back-link"><i data-lucide="arrow-left"></i> {{ 'back_to_registration'|t }}</a>
<div class="payment-box card">
<h1>{{ 'complete_payment'|t }}</h1>
<div class="order-summary">
<h3>{{ 'order_summary'|t }}</h3>
<div class="order-item">
<span>{{ 'event_registration'|t }}</span>
<span>{{ event.name }}</span>
</div>
<div class="order-item">
<span>{{ 'attendee_type'|t }}:</span>
<span>{{ pending.type_name }}</span>
</div>
<div class="order-item">
<span>{{ 'attendee'|t }}:</span>
<span><span class="first-name">{{ pending.first_name }}</span> <span class="last-name">{{ pending.last_name }}</span></span>
</div>
<div class="order-item">
<span>{{ 'email'|t }}:</span>
<span>{{ pending.email }}</span>
</div>
<div class="order-total">
<span>{{ 'total'|t }}:</span>
<span class="price">{{ pending.price|format_currency }} {{ get_currency_symbol() }}</span>
</div>
</div>
<div class="payment-notice">
<p><i data-lucide="info"></i> {{ 'payment_to_be_integrated'|t }}</p>
</div>
<form method="POST" class="payment-form">
<button type="submit" class="btn btn-success btn-lg btn-block"><i data-lucide="check-circle"></i> {{ 'complete_registration'|t }}</button>
</form>
</div>
</div>
{% endblock %}