from django.shortcuts import render
-
+from django.template.loader import render_to_string
from django.views.generic import View
+from django.core.mail import send_mail
-from myslice.viewutils import topmenu_items, the_user
+from ui.topmenu import topmenu_items, the_user
from portal.forms import ContactForm
-# view for contact form
+# splitting the 2 functions done here
+# GET is for displaying the empty form
+# POST is to process it once filled - or show the form again if anything is missing
class ContactView (View):
- def dispatch(self, request):
- if request.method == 'POST': # If the form has been submitted...
+ def post (self, request):
form = ContactForm(request.POST) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
# Process the data in form.cleaned_data
if cc_myself:
recipients.append(email)
- from django.core.mail import send_mail
- send_mail("Onelab user submitted a query ", [first_name,last_name,affiliation,subject,message], email, recipients)
+ msg = render_to_string('slice-request-email.txt', form.cleaned_data)
+ send_mail("Onelab user %s submitted a query "%email, msg, email, recipients)
return render(request,'contact_sent.html') # Redirect after POST
- else:
- form = ContactForm() # An unbound form
-
- return render(request, 'contact.html', {
- 'form': form,
- 'topmenu_items': topmenu_items('Contact Us', request),
- 'username': the_user (request)
-
- })
-
+ else:
+ return self._display (request, form)
+
+ def get (self, request):
+ return self._display (request, ContactForm()) # A fresh unbound form
+
+ def _display (self, request, form):
+ return render(request, 'contact.html', {
+ 'form': form,
+ 'topmenu_items': topmenu_items('Contact Us', request),
+ 'username': the_user (request)
+ })