From b3ac11a66b72e2aade94dbd17c9eda12e1108d90 Mon Sep 17 00:00:00 2001
From: Sachi King <nakato@nakato.io>
Date: Mon, 24 Apr 2017 16:31:13 +1000
Subject: [PATCH] Simplify django form rendering

Remove my hack to get bootstrap forms.

Remove the insane render-row-at-a-time forms that then only render
default django forms.
---
 pinaxcon/settings.py                          |  1 -
 pinaxcon/templates/_form_snippet.html         |  4 +-
 .../django/forms/widgets/checkbox.html        |  1 -
 .../django/forms/widgets/checkbox_option.html |  3 -
 .../templates/django/forms/widgets/input.html |  1 -
 .../django/forms/widgets/radio_option.html    |  3 -
 .../django/forms/widgets/select.html          |  5 --
 .../templates/django/forms/widgets/text.html  |  1 -
 .../django/forms/widgets/textarea.html        |  2 -
 pinaxcon/templates/forms/render.html          | 58 -------------------
 pinaxcon/templates/forms/render_fields.html   |  5 --
 pinaxcon/templates/forms/widget.html          | 14 -----
 pinaxcon/templates/forms/widget_basic.html    | 12 ----
 .../forms/widget_boolean_multiple.html        | 18 ------
 .../forms/widget_boolean_single.html          | 17 ------
 .../registrasion/amend_registration.html      |  1 -
 .../registrasion/checkout_errors.html         |  1 -
 .../registrasion/guided_registration.html     |  1 -
 pinaxcon/templates/registrasion/invoice.html  |  1 -
 .../registrasion/product_category.html        |  1 -
 .../templates/registrasion/profile_form.html  |  1 -
 .../templates/registrasion/reports_list.html  |  1 -
 pinaxcon/templates/registrasion/review.html   |  1 -
 .../stripe/credit_card_payment.html           |  1 -
 .../symposion/proposals/document_create.html  |  2 -
 .../symposion/proposals/proposal_detail.html  |  1 -
 .../symposion/proposals/proposal_edit.html    |  2 -
 .../proposals/proposal_speaker_manage.html    |  1 -
 .../symposion/reviews/review_detail.html      |  2 +-
 .../symposion/speakers/speaker_create.html    |  1 -
 .../symposion/speakers/speaker_edit.html      |  1 -
 31 files changed, 4 insertions(+), 160 deletions(-)
 delete mode 100644 pinaxcon/templates/django/forms/widgets/checkbox.html
 delete mode 100644 pinaxcon/templates/django/forms/widgets/checkbox_option.html
 delete mode 100644 pinaxcon/templates/django/forms/widgets/input.html
 delete mode 100644 pinaxcon/templates/django/forms/widgets/radio_option.html
 delete mode 100644 pinaxcon/templates/django/forms/widgets/select.html
 delete mode 100644 pinaxcon/templates/django/forms/widgets/text.html
 delete mode 100644 pinaxcon/templates/django/forms/widgets/textarea.html
 delete mode 100644 pinaxcon/templates/forms/render.html
 delete mode 100644 pinaxcon/templates/forms/render_fields.html
 delete mode 100644 pinaxcon/templates/forms/widget.html
 delete mode 100644 pinaxcon/templates/forms/widget_basic.html
 delete mode 100644 pinaxcon/templates/forms/widget_boolean_multiple.html
 delete mode 100644 pinaxcon/templates/forms/widget_boolean_single.html

diff --git a/pinaxcon/settings.py b/pinaxcon/settings.py
index ded917c9..9b7e566a 100644
--- a/pinaxcon/settings.py
+++ b/pinaxcon/settings.py
@@ -90,7 +90,6 @@ STATICFILES_FINDERS = [
     "django.contrib.staticfiles.finders.AppDirectoriesFinder",
 ]
 
-FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'
 TEMPLATES = [
     {
         "BACKEND": "django.template.backends.django.DjangoTemplates",
diff --git a/pinaxcon/templates/_form_snippet.html b/pinaxcon/templates/_form_snippet.html
index 19ba3aa3..7d64b937 100644
--- a/pinaxcon/templates/_form_snippet.html
+++ b/pinaxcon/templates/_form_snippet.html
@@ -1,4 +1,6 @@
 {% load pyconau2017_tags %}
+{% load bootstrap %}
+
 {% if form.non_field_errors %}
   <div class="has-errors">
     {{ form.non_field_errors }}
@@ -10,4 +12,4 @@
   Fields marked with <strong>*</strong> are required.
 </blockquote>
 
-{% include "forms/render.html" with form=form %}
+{{ form|bootstrap_horizontal }}
diff --git a/pinaxcon/templates/django/forms/widgets/checkbox.html b/pinaxcon/templates/django/forms/widgets/checkbox.html
deleted file mode 100644
index ee66c9c2..00000000
--- a/pinaxcon/templates/django/forms/widgets/checkbox.html
+++ /dev/null
@@ -1 +0,0 @@
-<input class="form-check-input" type="{{ widget.type }}" name="{{ widget.name }}"{% if widget.value != None %} value="{{ widget.value }}"{% endif %}{% include "django/forms/widgets/attrs.html" %} />
diff --git a/pinaxcon/templates/django/forms/widgets/checkbox_option.html b/pinaxcon/templates/django/forms/widgets/checkbox_option.html
deleted file mode 100644
index fd57f435..00000000
--- a/pinaxcon/templates/django/forms/widgets/checkbox_option.html
+++ /dev/null
@@ -1,3 +0,0 @@
-{% if wrap_label %}<label class="form-check-label"{% if widget.attrs.id %} for="{{ widget.attrs.id }}"{% endif %}>{% endif %}
-<input class="form-check-input" type="{{ widget.type }}" name="{{ widget.name }}"{% if widget.value != None %} value="{{ widget.value }}"{% endif %}{% include "django/forms/widgets/attrs.html" %} />
-{% if wrap_label %} {{ widget.label }}</label>{% endif %}
diff --git a/pinaxcon/templates/django/forms/widgets/input.html b/pinaxcon/templates/django/forms/widgets/input.html
deleted file mode 100644
index 87a8c065..00000000
--- a/pinaxcon/templates/django/forms/widgets/input.html
+++ /dev/null
@@ -1 +0,0 @@
-<input class="form-control" type="{{ widget.type }}" name="{{ widget.name }}"{% if widget.value != None %} value="{{ widget.value }}"{% endif %}{% include "django/forms/widgets/attrs.html" %} />
diff --git a/pinaxcon/templates/django/forms/widgets/radio_option.html b/pinaxcon/templates/django/forms/widgets/radio_option.html
deleted file mode 100644
index 323bbbb3..00000000
--- a/pinaxcon/templates/django/forms/widgets/radio_option.html
+++ /dev/null
@@ -1,3 +0,0 @@
-{% if wrap_label %}<label class="form-check-label"{% if widget.attrs.id %} for="{{ widget.attrs.id }}"{% endif %}>{% endif %}
-  <input class="form-check-input" type="{{ widget.type }}" name="{{ widget.name }}"{% if widget.value != None %} value="{{ widget.value }}"{% endif %}{% include "django/forms/widgets/attrs.html" %} />
-{% if wrap_label %} {{ widget.label }}</label>{% endif %}
diff --git a/pinaxcon/templates/django/forms/widgets/select.html b/pinaxcon/templates/django/forms/widgets/select.html
deleted file mode 100644
index 8a6ecad8..00000000
--- a/pinaxcon/templates/django/forms/widgets/select.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<select class="form-control" name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %}>{% for group_name, group_choices, group_index in widget.optgroups %}{% if group_name %}
-  <optgroup label="{{ group_name }}">{% endif %}{% for option in group_choices %}
-  {% include option.template_name with widget=option %}{% endfor %}{% if group_name %}
-  </optgroup>{% endif %}{% endfor %}
-</select>
diff --git a/pinaxcon/templates/django/forms/widgets/text.html b/pinaxcon/templates/django/forms/widgets/text.html
deleted file mode 100644
index 87a8c065..00000000
--- a/pinaxcon/templates/django/forms/widgets/text.html
+++ /dev/null
@@ -1 +0,0 @@
-<input class="form-control" type="{{ widget.type }}" name="{{ widget.name }}"{% if widget.value != None %} value="{{ widget.value }}"{% endif %}{% include "django/forms/widgets/attrs.html" %} />
diff --git a/pinaxcon/templates/django/forms/widgets/textarea.html b/pinaxcon/templates/django/forms/widgets/textarea.html
deleted file mode 100644
index 3cdc0916..00000000
--- a/pinaxcon/templates/django/forms/widgets/textarea.html
+++ /dev/null
@@ -1,2 +0,0 @@
-<textarea class="form-control" name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %}>
-{% if widget.value %}{{ widget.value }}{% endif %}</textarea>
diff --git a/pinaxcon/templates/forms/render.html b/pinaxcon/templates/forms/render.html
deleted file mode 100644
index 488303fa..00000000
--- a/pinaxcon/templates/forms/render.html
+++ /dev/null
@@ -1,58 +0,0 @@
-{% load formset_tags %}
-
-{% if form.total_form_count and form.empty_form %}
-
-  {% comment %}This is a formset.{% endcomment %}
-
-  <div class="formset" data-formset-prefix="{{ form.prefix }}">
-
-    {{ form.management_form }}
-
-    <div data-formset-body>
-      {% for inner_form in form %}
-        <div data-formset-form>
-        <fieldset>
-          {% include "forms/render_fields.html" with form=inner_form %}
-        </fieldset>
-        </div>
-        {% if not forloop.last %}
-          <div class="vertical-small"></div>
-        {% endif %}
-      {% endfor %}
-    </div>
-
-    <script type="form-template" data-formset-empty-form>
-      {% escapescript %}
-        <div class="vertical-small"></div>
-        <div data-formset-form>
-        <fieldset>
-          {% include "forms/render_fields.html" with form=form.empty_form %}
-        </fieldset>
-        </div>
-      {% endescapescript %}
-    </script>
-
-    <div class="vertical-small"></div>
-    <input type="button" class="btn" value="Add another" data-formset-add>
-
-    <script type="text/javascript">
-      function defer() {
-          if (window.jQuery) {
-            jQuery(function($) {
-                $(".formset").formset({
-                  animateForms: true
-                });
-            });
-          } else {
-            setTimeout(function() { defer() }, 50);
-          }
-      }
-      defer();
-    </script>
-
-
-  </div>
-
-{% else %}
-  {% include "forms/render_fields.html" %}
-{% endif %}
diff --git a/pinaxcon/templates/forms/render_fields.html b/pinaxcon/templates/forms/render_fields.html
deleted file mode 100644
index 91b7e2b3..00000000
--- a/pinaxcon/templates/forms/render_fields.html
+++ /dev/null
@@ -1,5 +0,0 @@
-{% for field in form %}
-  {% if not field.is_hidden %}
-    {% include "forms/widget.html" %}
-  {% endif %}
-{% endfor %}
diff --git a/pinaxcon/templates/forms/widget.html b/pinaxcon/templates/forms/widget.html
deleted file mode 100644
index cf1fc56c..00000000
--- a/pinaxcon/templates/forms/widget.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% load pyconau2017_tags %}
-
-<div class="form-group row">
-  {% classname field.field.widget as widget %}
-  {% if widget == "CheckboxInput" %}
-    {% include "forms/widget_boolean_single.html" %}
-  {% elif widget == "RadioSelect" or widget == "CheckboxSelectMultiple" %}
-    {% include "forms/widget_boolean_multiple.html" %}
-  {% elif widget == "Select" or widget == "SelectMultiple" or widget == "LazySelect" or widget == "CountrySelectWidget" %}
-    {% include "forms/widget_basic.html" with widget_class="select" %}
-  {% else %}
-    {% include "forms/widget_basic.html" %}
-  {% endif %}
-</div>
diff --git a/pinaxcon/templates/forms/widget_basic.html b/pinaxcon/templates/forms/widget_basic.html
deleted file mode 100644
index 295dc5f4..00000000
--- a/pinaxcon/templates/forms/widget_basic.html
+++ /dev/null
@@ -1,12 +0,0 @@
-{% if field.errors %}
-  <div class="alert alert-danger col-sm-offset-2 col-sm-10" role="alert">
-    {{ field.errors }}
-  </div>
-{% endif %}
-<label for="{{ field.id_for_label }}" class="col-sm-2 control-label">{{ field.label }}{% if field.field.required %} *{% endif %}</label>
-<div class="col-sm-10">
-  {{ field }}
-  {% if field.help_text %}
-    <span class="help_text">{{ field.help_text|safe }}</span>
-  {% endif %}
-</div>
diff --git a/pinaxcon/templates/forms/widget_boolean_multiple.html b/pinaxcon/templates/forms/widget_boolean_multiple.html
deleted file mode 100644
index 4208042f..00000000
--- a/pinaxcon/templates/forms/widget_boolean_multiple.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<h3>
-  {{ field.label }}{% if field.field.required %} *{% endif %}
-</h3>
-{% if field.help_text %}
-  <span class="help_text">{{ field.help_text|safe }}</span>
-{% endif %}
-
-{% if field.errors %}
-  <div class="alert alert-danger" role="alert">
-    {{ field.errors }}
-  </div>
-{% endif %}
-
-{% for item in field %}
-  <div class="col-sm-offset-2 col-sm-10">
-    {{ item }}
-  </div>
-{% endfor%}
diff --git a/pinaxcon/templates/forms/widget_boolean_single.html b/pinaxcon/templates/forms/widget_boolean_single.html
deleted file mode 100644
index c00b4102..00000000
--- a/pinaxcon/templates/forms/widget_boolean_single.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<h3>
-  {{ field.label }}{% if field.field.required %} *{% endif %}
-</h3>
-{% if field.errors %}
-  <div class="alert alert-danger col-sm-offset-2 col-sm-10" role="alert">
-    {{ field.errors }}
-  </div>
-{% endif %}
-<div class="col-sm-offset-2 col-sm-10">
-  <label class="form-check-label" for="id_profile-past_lca_0">
-    {{ field }}
-    <p>Sign me up</p>
-    {% if field.help_text %}
-      <span class="help_text">{{ field.help_text|safe }}</span>
-    {% endif %}
-  </label>
-</div>
diff --git a/pinaxcon/templates/registrasion/amend_registration.html b/pinaxcon/templates/registrasion/amend_registration.html
index b996bf64..613cf548 100644
--- a/pinaxcon/templates/registrasion/amend_registration.html
+++ b/pinaxcon/templates/registrasion/amend_registration.html
@@ -1,5 +1,4 @@
 {% extends "registrasion/base.html" %}
-{% load bootstrap %}
 {% load registrasion_tags %}
 
 {% block content %}
diff --git a/pinaxcon/templates/registrasion/checkout_errors.html b/pinaxcon/templates/registrasion/checkout_errors.html
index 5a1bcd4c..8a707a09 100644
--- a/pinaxcon/templates/registrasion/checkout_errors.html
+++ b/pinaxcon/templates/registrasion/checkout_errors.html
@@ -1,5 +1,4 @@
 {% extends "registrasion/base.html" %}
-{% load bootstrap %}
 {% load registrasion_tags %}
 
 {% block body %}
diff --git a/pinaxcon/templates/registrasion/guided_registration.html b/pinaxcon/templates/registrasion/guided_registration.html
index 5a2302f4..71af3298 100644
--- a/pinaxcon/templates/registrasion/guided_registration.html
+++ b/pinaxcon/templates/registrasion/guided_registration.html
@@ -1,5 +1,4 @@
 {% extends "registrasion/base.html" %}
-{% load bootstrap %}
 {% load pyconau2017_tags %}
 
 {% block header_title %}Buy Your Ticket{% endblock %}
diff --git a/pinaxcon/templates/registrasion/invoice.html b/pinaxcon/templates/registrasion/invoice.html
index 6f51f569..ebfadd9a 100644
--- a/pinaxcon/templates/registrasion/invoice.html
+++ b/pinaxcon/templates/registrasion/invoice.html
@@ -1,5 +1,4 @@
 {% extends "registrasion/base.html" %}
-{% load bootstrap %}
 {% load registrasion_tags %}
 {% load pyconau2017_tags %}
 {% load staticfiles %}
diff --git a/pinaxcon/templates/registrasion/product_category.html b/pinaxcon/templates/registrasion/product_category.html
index db531ab2..0cbd23ce 100644
--- a/pinaxcon/templates/registrasion/product_category.html
+++ b/pinaxcon/templates/registrasion/product_category.html
@@ -1,5 +1,4 @@
 {% extends "registrasion/base.html" %}
-{% load bootstrap %}
 {% load registrasion_tags %}
 {% load pyconau2017_tags %}
 
diff --git a/pinaxcon/templates/registrasion/profile_form.html b/pinaxcon/templates/registrasion/profile_form.html
index 38c7f14e..5911874d 100644
--- a/pinaxcon/templates/registrasion/profile_form.html
+++ b/pinaxcon/templates/registrasion/profile_form.html
@@ -1,5 +1,4 @@
 {% extends "registrasion/base.html" %}
-{% load bootstrap %}
 {% load pyconau2017_tags %}
 
 {% block header_title %}Your profile{% endblock %}
diff --git a/pinaxcon/templates/registrasion/reports_list.html b/pinaxcon/templates/registrasion/reports_list.html
index f5883593..0fea9af0 100644
--- a/pinaxcon/templates/registrasion/reports_list.html
+++ b/pinaxcon/templates/registrasion/reports_list.html
@@ -1,5 +1,4 @@
 {% extends "site_base.html" %}
-{% load bootstrap %}
 {% load registrasion_tags %}
 {% block body %}
 
diff --git a/pinaxcon/templates/registrasion/review.html b/pinaxcon/templates/registrasion/review.html
index 33115f59..f582673b 100644
--- a/pinaxcon/templates/registrasion/review.html
+++ b/pinaxcon/templates/registrasion/review.html
@@ -1,5 +1,4 @@
 {% extends "registrasion/base.html" %}
-{% load bootstrap %}
 {% load registrasion_tags %}
 {% load pyconau2017_tags %}
 
diff --git a/pinaxcon/templates/registrasion/stripe/credit_card_payment.html b/pinaxcon/templates/registrasion/stripe/credit_card_payment.html
index 25478439..33b1a9e0 100644
--- a/pinaxcon/templates/registrasion/stripe/credit_card_payment.html
+++ b/pinaxcon/templates/registrasion/stripe/credit_card_payment.html
@@ -1,5 +1,4 @@
 {% extends "registrasion/base.html" %}
-{% load bootstrap %}
 {% load registrasion_tags %}
 {% load pyconau2017_tags %}
 
diff --git a/pinaxcon/templates/symposion/proposals/document_create.html b/pinaxcon/templates/symposion/proposals/document_create.html
index e238b136..96169771 100644
--- a/pinaxcon/templates/symposion/proposals/document_create.html
+++ b/pinaxcon/templates/symposion/proposals/document_create.html
@@ -1,7 +1,5 @@
 {% extends "symposion/proposals/base.html" %}
 
-{% load bootstrap %}
-
 {% block page_title %}Upload Document to '{{ proposal.title }}'{% endblock %}
 
 {% block proposals_body %}
diff --git a/pinaxcon/templates/symposion/proposals/proposal_detail.html b/pinaxcon/templates/symposion/proposals/proposal_detail.html
index 163e9096..83f3476e 100644
--- a/pinaxcon/templates/symposion/proposals/proposal_detail.html
+++ b/pinaxcon/templates/symposion/proposals/proposal_detail.html
@@ -1,7 +1,6 @@
 {% extends "symposion/proposals/base.html" %}
 
 {% load i18n %}
-{% load bootstrap %}
 
 {% block head_title %}{{ proposal.title }}{% endblock %}
 {% block page_title %}#{{ proposal.number }}: {{ proposal.title }} ({{ proposal.speaker }}){% endblock %}
diff --git a/pinaxcon/templates/symposion/proposals/proposal_edit.html b/pinaxcon/templates/symposion/proposals/proposal_edit.html
index f9a0e818..55095879 100644
--- a/pinaxcon/templates/symposion/proposals/proposal_edit.html
+++ b/pinaxcon/templates/symposion/proposals/proposal_edit.html
@@ -1,7 +1,5 @@
 {% extends "symposion/proposals/base.html" %}
 
-{% load bootstrap %}
-
 {% block head_title %}Editing {{ proposal.title }}{% endblock %}
 {% block page_title %}Editing: {{ proposal.title }}{% endblock %}
 
diff --git a/pinaxcon/templates/symposion/proposals/proposal_speaker_manage.html b/pinaxcon/templates/symposion/proposals/proposal_speaker_manage.html
index 228b7352..4445933e 100644
--- a/pinaxcon/templates/symposion/proposals/proposal_speaker_manage.html
+++ b/pinaxcon/templates/symposion/proposals/proposal_speaker_manage.html
@@ -1,7 +1,6 @@
 {% extends "symposion/proposals/base.html" %}
 
 {% load i18n %}
-{% load bootstrap %}
 
 {% block page_title %}{% trans 'Proposal:' %} {{ proposal.title }}{% endblock %}
 {% block head_title %}{% trans 'Proposal:' %} {{ proposal.title }}{% endblock %}
diff --git a/pinaxcon/templates/symposion/reviews/review_detail.html b/pinaxcon/templates/symposion/reviews/review_detail.html
index 35f3cf9a..aba2aa06 100644
--- a/pinaxcon/templates/symposion/reviews/review_detail.html
+++ b/pinaxcon/templates/symposion/reviews/review_detail.html
@@ -1,7 +1,7 @@
 {% extends "symposion/reviews/base.html" %}
 
-{% load i18n %}
 {% load bootstrap %}
+{% load i18n %}
 
 
 {% block body %}
diff --git a/pinaxcon/templates/symposion/speakers/speaker_create.html b/pinaxcon/templates/symposion/speakers/speaker_create.html
index 699434b9..5086dfe6 100644
--- a/pinaxcon/templates/symposion/speakers/speaker_create.html
+++ b/pinaxcon/templates/symposion/speakers/speaker_create.html
@@ -1,6 +1,5 @@
 {% extends "symposion/speakers/base.html" %}
 
-{% load bootstrap %}
 {% load i18n %}
 
 {% block head_title %}{% trans "Create Speaker Profile" %}{% endblock %}
diff --git a/pinaxcon/templates/symposion/speakers/speaker_edit.html b/pinaxcon/templates/symposion/speakers/speaker_edit.html
index e09307b1..a43ef42e 100644
--- a/pinaxcon/templates/symposion/speakers/speaker_edit.html
+++ b/pinaxcon/templates/symposion/speakers/speaker_edit.html
@@ -1,6 +1,5 @@
 {% extends "symposion/speakers/base.html" %}
 
-{% load bootstrap %}
 {% load i18n %}
 
 {% block head_title %}{% trans "Edit Speaker Profile" %}{% endblock %}