Feat: Home and Contact pages setup with Altcha bot protection and saving to database using alterntive layout.

This commit is contained in:
2025-07-25 19:22:17 +01:00
parent fad5336cc4
commit b76a999d01
95 changed files with 10274 additions and 2115 deletions

View File

@@ -0,0 +1,77 @@
{% extends 'layouts/layout.html' %}
{% block page_head %}
<link rel="stylesheet" href="{{ url_for('static', filename='dist/css/core_contact.bundle.css') }}">
{% endblock %}
{% block page_nav_links %}
{#
<a href="#contact-form">Contact Form</a>
<a href="#contact-details">Contact Details</a>
#}
{% endblock %}
{% block page_body %}
{% set form = model.form_contact %}
<section class="contact-section">
<div class="contact-form">
<h1>Contact Us</h1>
<p>Please fill in the form below and we'll get back to you as soon as possible.</p>
<form id="{{ model.ID_CONTACT_FORM }}" method="POST" action="{{ model.HASH_POST_CONTACT_FORM }}">
{{ form.csrf_token }}
<div class="form-grid">
<label class="form-label" for="{{ form.email.id }}">{{ form.email.label.text }} *</label>
<div>
{{ form.email(class="form-input", required=True) }}
</div>
<label class="form-label" for="{{ form.contact_name.id }}">{{ form.contact_name.label.text }} *</label>
<div>
{{ form.contact_name(class="form-input", required=True) }}
</div>
<label class="form-label" for="{{ form.company_name.id }}">{{ form.company_name.label.text }} *</label>
<div>
{{ form.company_name(class="form-input", required=True) }}
</div>
<label class="form-label" for="{{ form.message.id }}">{{ form.message.label.text }} *</label>
<div>
{{ form.message(class="form-input", required=True) }}
</div>
</div>
<div class="{{ model.FLAG_CONTAINER_CHECKBOX }} {{ model.FLAG_RECEIVE_MARKETING }} marketing-consent">
{{ model.form_contact.receive_marketing() }}
{{ model.form_contact.receive_marketing.label }}
</div>
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_CAPTCHA }}">
<div>
{{ form.altcha.label }}
<altcha-widget
class="altcha-widget"
challengeurl="{{ model.HASH_GET_ALTCHA_CHALLENGE }}"
auto="onload"
id="{{ form.altcha.id }}"
name="{{ form.altcha.name }}"
></altcha-widget>
</div>
<p>This CAPTCHA mechanism is fully GDPR-compliant with no cookies, no fingerprinting, no tracking, and runs in the background so you don't need to do anything!</p>
</div>
<div class="{{ model.FLAG_CONTAINER_INPUT }}">
{{ model.form_contact.submit() }}
</div>
</form>
<div class="data-notice">
<h3>How we use your information</h3>
<p>If you opt in to marketing communications, we will also use your email address to send you updates about our services, ERPNext features, and relevant industry news. You can unsubscribe from these communications at any time.</p>
<p>We retain contact form submissions for customer service purposes and retain marketing consent records as required by law. For details about how long we keep your information, please see our <a href="{{ model.HASH_PAGE_DATA_RETENTION_SCHEDULE }}">data retention schedule</a>.</p>
<p>For full details about how we handle your personal data, please read our <a href="{{ model.HASH_PAGE_PRIVACY_POLICY }}">Privacy Policy</a>.</p>
</div>
</div>
</section>
{% endblock %}