Index: trunk/www/ordipourtous/views.py =================================================================== diff -u -r12 -r13 --- trunk/www/ordipourtous/views.py (.../views.py) (revision 12) +++ trunk/www/ordipourtous/views.py (.../views.py) (revision 13) @@ -2,26 +2,18 @@ from django.http import HttpResponse, HttpResponseRedirect from django.views.generic import TemplateView from django.views.generic.edit import CreateView +from django.conf import settings # Create your views here. class OrdipourtousView(TemplateView): - template_name = 'home.html' + template_name = 'ordi-pour-tous-home.html' -class ToBeContinuedView(TemplateView): - template_name = 'tobecontinued.html' +from .models import GivenItems, NeededItems -class AProposView(TemplateView): - template_name = 'apropos.html' +class ItemsViewBase(CreateView): + success_url = "/success" -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)) @@ -30,23 +22,23 @@ 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()), + '[ordipourtous] - ' + self.email_pre_subject + ' - ' + " ".join(str(self.object.name)[:30].split()), body, 'ordipourtous@accrosys.com', - ['services@accrosys.com'], + settings.EMAIL_TO, 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) + form = super(ItemsViewBase, 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 + from crispy_forms.layout import Layout, Field, Submit, ButtonHolder 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__) @@ -56,5 +48,21 @@ else: form.helper.layout.append(Field(field_name)) # form.helper.form_show_labels = False - form.helper.add_input(Submit('submit', 'Envoyer')) + form.helper.layout.append( + ButtonHolder( + Submit('submit', 'Envoyer', css_class='btn btn-dark'), + css_class='text-center'), + ) return form + +class GivenItemsView(ItemsViewBase): + model = GivenItems + template_name = 'ordi-pour-tous-givenitems.html' + fields = [ 'computer_ok', 'computer_nok', 'printer_ok', 'screen_ok', 'other', 'name', 'email', 'phone', 'comments' ] + email_pre_subject = 'matériel disponible' + +class NeededItemsView(ItemsViewBase): + model = NeededItems + template_name = 'ordi-pour-tous-neededitems.html' + fields = [ 'computer_ok', 'printer_ok', 'screen_ok', 'something_is_broken', 'other', 'name', 'email', 'phone', 'comments' ] + email_pre_subject = 'besoin de quelque chose'