Merge pull request #167 from silverstripe-rebelalliance/fix_166

BUG: Fixes #166 for SQL server which does not like empty strings as nume...
This commit is contained in:
Will Rossiter 2013-10-17 00:19:44 -07:00
commit 34994f3e2e
2 changed files with 8 additions and 3 deletions

View File

@ -36,8 +36,10 @@ class UserFormsGridFieldFilterHeader extends GridFieldFilterHeader {
// submitted in this form. // submitted in this form.
$params = $gridField->getForm()->getController()->getURLParams(); $params = $gridField->getForm()->getController()->getURLParams();
// this is for you SQL server I know you don't see '' as a number
$parentID = (!empty($params['ID'])) ? Convert::raw2sql($params['ID']) : 0;
$formFields = SubmittedFormField::get() $formFields = SubmittedFormField::get()
->where(sprintf("SubmittedForm.ParentID = '%s'", Convert::raw2sql($params['ID']))) ->where(sprintf("SubmittedForm.ParentID = '%s'", $parentID))
->leftJoin('SubmittedForm', 'SubmittedFormField.ParentID = SubmittedForm.ID') ->leftJoin('SubmittedForm', 'SubmittedFormField.ParentID = SubmittedForm.ID')
->sort('Title', 'ASC') ->sort('Title', 'ASC')
->map('Name', 'Title'); ->map('Name', 'Title');

View File

@ -128,9 +128,11 @@ class UserDefinedForm extends Page {
$filter->setThrowExceptionOnBadDataType(false); $filter->setThrowExceptionOnBadDataType(false);
$pagination->setThrowExceptionOnBadDataType(false); $pagination->setThrowExceptionOnBadDataType(false);
// make sure a numeric not a empty string is checked against this int column for SQL server
$parentID = (!empty($this->ID)) ? $this->ID : 0;
// attach every column to the print view from // attach every column to the print view from
$columns = SubmittedFormField::get() $columns = SubmittedFormField::get()
->where("\"SubmittedForm\".\"ParentID\" = '$this->ID'") ->where("\"SubmittedForm\".\"ParentID\" = '$parentID'")
->leftJoin('SubmittedForm', '"SubmittedFormField"."ParentID" = "SubmittedForm"."ID"') ->leftJoin('SubmittedForm', '"SubmittedFormField"."ParentID" = "SubmittedForm"."ID"')
->map('Name', 'Title'); ->map('Name', 'Title');
@ -163,8 +165,9 @@ class UserDefinedForm extends Page {
* @return void * @return void
*/ */
public function doPublish() { public function doPublish() {
$parentID = (!empty($this->ID)) ? $this->ID : 0;
// remove fields on the live table which could have been orphaned. // remove fields on the live table which could have been orphaned.
$live = Versioned::get_by_stage("EditableFormField", "Live", "\"EditableFormField\".\"ParentID\" = $this->ID"); $live = Versioned::get_by_stage("EditableFormField", "Live", "\"EditableFormField\".\"ParentID\" = $parentID");
if($live) { if($live) {
foreach($live as $field) { foreach($live as $field) {