Change CSV field export order to match form order - Fix #438

It will order the CSV field export to match the current order of the
field. Previously, it would be sorted alphabetically.
For any fields that are not in the current form, they'll be at the end
of the CSV, sorted by Title again.
This commit is contained in:
Stephen Shkardoon 2016-03-21 23:45:17 +13:00
parent 5da95abf27
commit b825b6e42c

View File

@ -165,11 +165,12 @@ class UserDefinedForm extends Page {
// get a list of all field names and values used for print and export CSV views of the GridField below. // get a list of all field names and values used for print and export CSV views of the GridField below.
$columnSQL = <<<SQL $columnSQL = <<<SQL
SELECT "Name", "Title" SELECT "SubmittedFormField"."Name" as "Name", "SubmittedFormField"."Title" as "Title", IFNULL("EditableFormField"."Sort", 999) AS "Sort"
FROM "SubmittedFormField" FROM "SubmittedFormField"
LEFT JOIN "SubmittedForm" ON "SubmittedForm"."ID" = "SubmittedFormField"."ParentID" LEFT JOIN "SubmittedForm" ON "SubmittedForm"."ID" = "SubmittedFormField"."ParentID"
LEFT JOIN "EditableFormField" ON "EditableFormField"."Title" = "SubmittedFormField"."Title" AND "EditableFormField"."ParentID" = '$parentID'
WHERE "SubmittedForm"."ParentID" = '$parentID' WHERE "SubmittedForm"."ParentID" = '$parentID'
ORDER BY "Title" ASC ORDER BY "Sort", "Title"
SQL; SQL;
// Sanitise periods in title // Sanitise periods in title
$columns = array(); $columns = array();