diff --git a/ynr/apps/bulk_adding/static/bulk_adding/js/bulk.js b/ynr/apps/bulk_adding/static/bulk_adding/js/bulk.js index 49d213024c..c991effb16 100644 --- a/ynr/apps/bulk_adding/static/bulk_adding/js/bulk.js +++ b/ynr/apps/bulk_adding/static/bulk_adding/js/bulk.js @@ -126,4 +126,53 @@ $(function(){ $form.remove(); }); }); + + + function tbody_is_empty($tbody) { + if ($tbody.find("input:not([type=hidden])").val() && $tbody.find("input:not([type=hidden])").val().length > 0) { + return false; + } + if ($tbody.find("option:not([value='']):selected").length > 0) { + return false; + } + return true; + } + + // Remove empty fieldsets + var always_show_extra = $("form#bulk_add_form")[0].dataset.winnerCount * 3; + $("#bulk_add_form .sopn_adding_table tbody").each(function(i) { + var tbody = $(this); + if (tbody_is_empty(tbody)) { + if (i >= always_show_extra) { + tbody.hide(); + tbody.prev("thead").hide(); + } + } else { + always_show_extra++; + } + }); + + + // Extra form rows on bulk adding form + var $table = $("#bulk_add_form .sopn_adding_table"); + var add_extra_row = ""; + $table.append(add_extra_row); + $("#add_row_button").on("click", function() { + var total_form_element = $('#id_form-TOTAL_FORMS'); + var last_tbody = $table.find("tbody:last").prev("tbody"); + var new_tbody = last_tbody.clone(true, true); + var formRegex = RegExp('form-[1-9]+-','g'); + var new_form_id = $table.find(".ballot_group").length; + new_tbody.html(new_tbody.html().replace(formRegex, 'form-'+new_form_id+'-')); + var next_form_id = new_form_id += 1; + var next_form_label = $table.find("thead:visible:last").find("th").text().match("([0-9]+)")[0]; + next_form_label = parseInt(next_form_label) + 1; + $("Person "+ next_form_label +"").insertBefore($(".add_extra_table")); + new_tbody.insertBefore($(".add_extra_table")); + new_tbody.find(".select2").remove(); + populate_party_selects(); + new_tbody.show(); + total_form_element.val(next_form_id); + }); + }); diff --git a/ynr/apps/bulk_adding/templates/bulk_add/sopns/add_form.html b/ynr/apps/bulk_adding/templates/bulk_add/sopns/add_form.html index aae688865f..a5f5809f7d 100644 --- a/ynr/apps/bulk_adding/templates/bulk_add/sopns/add_form.html +++ b/ynr/apps/bulk_adding/templates/bulk_add/sopns/add_form.html @@ -70,7 +70,7 @@

Add candidates to {{ election_obj.name }}: +
{% csrf_token %} {{ formset.management_form }} @@ -82,9 +82,6 @@

Add candidates to {{ election_obj.name }}: {% for form in formset %} - {% for field in form.hidden_fields %} - {{ field }} - {% endfor %} @@ -93,6 +90,9 @@

Add candidates to {{ election_obj.name }}: + {% for field in form.hidden_fields %} + {{ field }} + {% endfor %} {{ form.name.errors }} @@ -133,6 +133,7 @@

Add candidates to {{ election_obj.name }}: