contact form

This commit is contained in:
j 2021-10-26 16:47:06 +01:00
parent e9fad9eabf
commit d5bd8d2da8
13 changed files with 96 additions and 0 deletions

0
app/contact/__init__.py Normal file
View file

2
app/contact/admin.py Normal file
View file

@ -0,0 +1,2 @@
from django.contrib import admin

6
app/contact/apps.py Normal file
View file

@ -0,0 +1,6 @@
from django.apps import AppConfig
class ContactConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'app.contact'

7
app/contact/forms.py Normal file
View file

@ -0,0 +1,7 @@
from django import forms
from django.conf import settings
class ContactForm(forms.Form):
email = forms.EmailField(label='EMail', required=False)
message = forms.CharField(label='Message', required=True)

View file

2
app/contact/models.py Normal file
View file

@ -0,0 +1,2 @@
from django.db import models

3
app/contact/tests.py Normal file
View file

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

20
app/contact/views.py Normal file
View file

@ -0,0 +1,20 @@
from django.shortcuts import render
from . import forms
from . import models
def index(request):
context = {
}
if request.method == 'POST':
form = forms.ContactForm(request.POST)
if form.is_valid():
message = 'From: %s\n\n%s' % (form.cleaned_data['email'], form.cleaned_data['message'])
subject = 'Phantas.ma/polis contact message'
from_ = settings.CONTACT_FROM_EMAIL
to = settings.CONTACT_TO_EMAIL
msg = EmailMessage(subject, message, from_, to, reply_to=[form.cleaned_data['email']])
msg.send(fail_silently=True)
else:
context['form'] = form
return render(request, 'contact.html', context)

View file

@ -41,6 +41,7 @@ INSTALLED_APPS = [
'app.user', 'app.user',
'app.video', 'app.video',
'app.text', 'app.text',
'app.contact',
] ]
@ -148,6 +149,9 @@ DEFAULT_PANDORA_API = "https://pad.ma/api/"
URL_PREFIX = 'polis+' URL_PREFIX = 'polis+'
CONTACT_TO_EMAIL = 'polis@phantas.ma'
CONTACT_FROM_EMAIL = 'polis@phantas.ma'
try: try:
from .local_settings import * from .local_settings import *
except ImportError: except ImportError:

View file

@ -0,0 +1,27 @@
main > .contact {
max-width: var(--container-lg-width);
margin: 0 auto;
padding: var(--spacing-2);
h1 {
font-size: 22px;
margin: 0 0 var(--spacing) 0;
}
input[type=email], textarea {
border: 0;
background: blue;
color: red;
font-size: 20px;
line-height: 1.3;
}
textarea {
width: 500px;
height: 300px;
}
input[type=submit] {
border: 0;
background: green;
}
}

View file

@ -8,3 +8,4 @@
@import "partials/text"; @import "partials/text";
@import "partials/ascroll"; @import "partials/ascroll";
@import "partials/about"; @import "partials/about";
@import "partials/contact";

View file

@ -0,0 +1,22 @@
{% extends "base.html" %}
{% block title %}Contact 聯絡{% endblock title %}
{% block body_class%}animated animated-text{% endblock %}
{% block main %}
<div class="contact">
<h1>Contact 聯絡</h1>
<form method="post">
<label>
Your Email:
<input name="email" type="email" required>
</label>
<br>
<label>Message 訊息:<br>
<textarea name="message" required></textarea>
</label>
<br>
<input type="submit" value="Send Message">
{% csrf_token %}
</form>
</div>
{% endblock %}

View file

@ -19,6 +19,7 @@ from django.conf import settings
from .video import views as video from .video import views as video
from .text import views as text from .text import views as text
from .contact.views import index as contact
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
@ -34,6 +35,7 @@ urlpatterns = [
path(settings.URL_PREFIX + 'assemblies/<str:slug>', text.text, name='text'), path(settings.URL_PREFIX + 'assemblies/<str:slug>', text.text, name='text'),
#path(settings.URL_PREFIX + 'index-alt/', text.index_alt, name='index_alt'), #path(settings.URL_PREFIX + 'index-alt/', text.index_alt, name='index_alt'),
path(settings.URL_PREFIX + 'about/', text.about, name='about'), path(settings.URL_PREFIX + 'about/', text.about, name='about'),
path(settings.URL_PREFIX + 'contact/', contact, name='contact'),
path(settings.URL_PREFIX + '<str:slug>/', text.page, name='page'), path(settings.URL_PREFIX + '<str:slug>/', text.page, name='page'),
path(settings.URL_PREFIX[:-1], text.index, name='index'), path(settings.URL_PREFIX[:-1], text.index, name='index'),
path('', text.fallback, name='fallback'), path('', text.fallback, name='fallback'),