This commit is contained in:
PCoder 2021-03-03 13:54:25 +05:30
parent 409405f296
commit 73c53a7a61
3 changed files with 31 additions and 7 deletions

View File

@ -1,19 +1,30 @@
from django import forms
from django.utils.translation import ugettext_lazy as _
from datacenterlight.utils import get_ip_address
import logging
from .models import ContactUs
import ipaddress
logger = logging.getLogger(__name__)
class ContactForm(forms.ModelForm):
class Meta:
fields = ['name', 'email', 'message', 'ip_address']
model = ContactUs
labels = {
"ip_address": _("You are requesting this website from "
"{{ip_address}}. Enter 'IPv{{v4v6}}':".format(
ip_address='test', v4v6='4'
))
}
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request', None)
super(ContactForm, self).__init__(*args, **kwargs)
self.fields['ip_address'] = forms.CharField(required=True)
def clean_ip_address(self):
input_ip_address_text = self.cleaned_data.get('ip_address')

View File

@ -26,7 +26,7 @@
<div class="form-group">
<label class="control-label col-sm-2" for="name">{% trans "Name" %}</label>
<div class="col-sm-10">
<input id="name" type="text" name="name" class="form-control" data-minlength="3" data-error="{% trans 'Please enter your name.' %}" required>
<input id="name" type="text" name="name" class="form-control" data-minlength="3" data-error="{% trans 'Please enter your name.' %}" required value="{{contact_form.name.value}}">
<div class="help-block with-errors"></div>
{{contact_form.name.errors}}
</div>
@ -34,7 +34,7 @@
<div class="form-group">
<label class="control-label col-sm-2" for="email">{% trans "Email" %}</label>
<div class="col-sm-10">
<input name="email" type="email" id="email" pattern="^[^@\s]+@([^@\s]+\.)+[^@\s]+$" class="form-control" data-error="{% trans 'Please enter a valid email address.' %}" required>
<input name="email" type="email" id="email" pattern="^[^@\s]+@([^@\s]+\.)+[^@\s]+$" class="form-control" data-error="{% trans 'Please enter a valid email address.' %}" required value="{{contact_form.email.value}}">
<div class="help-block with-errors"></div>
{{contact_form.email.errors}}
</div>
@ -42,18 +42,17 @@
<div class="form-group">
<label class="control-label col-sm-2" for="message">{% trans "Message" %}</label>
<div class="col-sm-10">
<textarea class="form-control" name="message" id="message" rows="6" required></textarea>
<textarea class="form-control" name="message" id="message" rows="6" required>{{contact_form.message.value}}</textarea>
<div class="help-block with-errors"></div>
{{contact_form.message.errors}}
</div>
</div>
<div class="row"><div class="col-sm-2">&nbsp;</div><div class="col-sm-10">{{ ip_address_label_title }}</div></div>
<div class="row"><div class="col-sm-2">&nbsp;</div><div class="col-sm-10">{{ ip_address_label_title }}{{contact_form.message.errors}}</div></div>
<div class="form-group">
<label class="control-label col-sm-2" for="ip_address" style="white-space: nowrap;" >{{ ip_address_label }}</label>
<div class="col-sm-10">
<input name="ip_address" id="ip_address" type="text" class="form-control"data-error="{% trans 'Please enter the text IPv4 or IPv6 based on your IP address.' %}" required>
<div class="help-block with-errors"></div>
{{contact_form.ip_address.errors}}
<input name="ip_address" id="ip_address" type="text" class="form-control"data-error="{% trans 'Please enter the text IPv4 or IPv6 based on your IP address.' %}" required value="{{contact_form.ip_address.value}}">
<div class="help-block with-errors">{{contact_form.ip_address.errors}}</div>
</div>
</div>
<div class="form-group">

View File

@ -59,6 +59,20 @@ class ContactUsView(FormView):
def form_invalid(self, form):
if self.request.is_ajax():
logger.debug(form)
# request_ip_address = get_ip_address(self.request)
# request_v4v6 = ''
# if (type(ipaddress.ip_address(request_ip_address)) ==
# ipaddress.IPv4Address):
# request_v4v6 = 'IPv4'
# elif (type(ipaddress.ip_address(request_ip_address)) ==
# ipaddress.IPv6Address):
# request_v4v6 = 'IPv6'
# context['ip_address_label_title'] = _(
# "You are requesting this website from "
# "{ip_address}.".format(ip_address=request_ip_address))
# context['ip_address_label'] = _(
# "Enter '{v4v6}':".format(v4v6=request_v4v6))
return self.render_to_response(
self.get_context_data(contact_form=form))
else: