from django.shortcuts import render from django.http import HttpResponse, HttpResponseRedirect from django.views.generic import TemplateView from django.views.generic.edit import CreateView # Create your views here. class OrdipourtousView(TemplateView): template_name = 'home.html' class ToBeContinuedView(TemplateView): template_name = 'tobecontinued.html' class AProposView(TemplateView): template_name = 'apropos.html' from .models import GivenItems class GivenItemsView(CreateView): model = GivenItems template_name = 'givenitems.html' fields = [ 'computer_ok', 'computer_nok', 'printer_ok', 'screen_ok', 'other', 'name', 'email', 'phone', 'comments' ] success_url = "asuivre" def form_valid(self, form): self.object = form.save() # print("success", dir(self.object), dir(form)) from django.core.mail import send_mail body = "" for f in self.fields: body += f + ':' + str(getattr(self.object, f)) + "\n" send_mail( '[ordipourtous] - matériel disponible - ' + " ".join(str(self.object.name)[:30].split()), body, 'ordipourtous@accrosys.com', ['services@accrosys.com'], fail_silently=False, ) return HttpResponseRedirect(self.get_success_url()) def get_form(self, form_class=None): if form_class is None: form_class = self.get_form_class() form = super(GivenItemsView, self).get_form(form_class) from crispy_forms.helper import FormHelper form.helper = FormHelper() # Moving field labels into placeholders from crispy_forms.layout import Layout, Field, Submit form.helper.layout = Layout() for field_name, field in form.fields.items(): # print("get_form", field_name, field.label, dir(field), field.widget.__class__.__name__) if field.widget.__class__.__name__.lower() not in ('checkboxinput', ): form.helper.layout.append(Field(field_name, placeholder=field.label)) form.fields[field_name].label = False else: form.helper.layout.append(Field(field_name)) # form.helper.form_show_labels = False form.helper.add_input(Submit('submit', 'Envoyer')) return form