Author: Kris.Wallsmith
Date: 2010-02-08 16:46:35 +0100 (Mon, 08 Feb 2010)
New Revision: 27742
Added:
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/ResourceTypeFormFilter.class.php
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/ResourceTypeForm.class.php
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceType.class.php
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceTypeTable.class.php
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/ResourceTypeFormFilter.class.php
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/ResourceTypeForm.class.php
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceType.class.php
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceTypeTable.class.php
Modified:
branches/1.3/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/FormGeneratorTest.php
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/config/doctrine/schema.yml
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/data/sql/schema.sql
branches/1.4/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/FormGeneratorTest.php
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/config/doctrine/schema.yml
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/data/sql/schema.sql
Log:
[1.3, 1.4] fixed generation of enum pk form widgets (closes #7959)
Modified:
branches/1.3/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php
===================================================================
---
branches/1.3/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php
2010-02-08 15:29:11 UTC (rev 27741)
+++
branches/1.3/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php
2010-02-08 15:46:35 UTC (rev 27742)
@@ -331,8 +331,9 @@
/**
* Returns a PHP string representing options to pass to a widget for a given
column.
*
- * @param sfDoctrineColumn $column
- * @return string The options to pass to the widget as a PHP string
+ * @param sfDoctrineColumn $column
+ *
+ * @return string The options to pass to the widget as a PHP string
*/
public function getWidgetOptionsForColumn($column)
{
@@ -342,16 +343,9 @@
{
$options[] = sprintf('\'model\' => $this->getRelatedModelName(\'%s\'),
\'add_empty\' => %s', $column->getRelationKey('alias'), $column->isNotNull() ?
'false' : 'true');
}
- else
+ else if ('enum' == $column->getDoctrineType() &&
is_subclass_of($this->getWidgetClassForColumn($column),
'sfWidgetFormChoiceBase'))
{
- switch ($column->getDoctrineType())
- {
- case 'enum':
- $values = $column->getDefinitionKey('values');
- $values = array_combine($values, $values);
- $options[] = "'choices' => " . str_replace("\n", '',
$this->arrayExport($values));
- break;
- }
+ $options[] = '\'choices\' =>
'.$this->arrayExport(array_combine($column['values'], $column['values']));
}
return count($options) ? sprintf('array(%s)', implode(', ', $options)) :
'';
@@ -456,8 +450,7 @@
}
break;
case 'enum':
- $values = array_combine($column['values'], $column['values']);
- $options[] = "'choices' => " . str_replace("\n", '',
$this->arrayExport($values));
+ $options[] = '\'choices\' => '.$this->arrayExport($column['values']);
break;
}
}
Modified:
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/FormGeneratorTest.php
===================================================================
---
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/FormGeneratorTest.php
2010-02-08 15:29:11 UTC (rev 27741)
+++
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/FormGeneratorTest.php
2010-02-08 15:46:35 UTC (rev 27742)
@@ -12,7 +12,7 @@
$fixtures = 'fixtures';
require_once(dirname(__FILE__).'/../bootstrap/functional.php');
-$t = new lime_test(40);
+$t = new lime_test(41);
$t->diag("Test that these models don't generate forms or filters classes");
$noFormsOrFilters = array('UserGroup', 'UserPermission', 'GroupPermission');
@@ -82,3 +82,15 @@
$test = new BlogArticleFormFilter();
$t->is($test->getWidget('author_id')->getOption('model'), 'BlogAuthor');
$t->is($test->getValidator('author_id')->getOption('model'), 'BlogAuthor');
+
+$t->diag('Check enum primary keys');
+try
+{
+ $test = new ResourceTypeForm();
+ $t->pass('enum primary key widgets work');
+}
+catch (InvalidArgumentException $e)
+{
+ $t->fail('enum primary key widgets work');
+ $t->diag(' '.$e->getMessage());
+}
Modified:
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/config/doctrine/schema.yml
===================================================================
---
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/config/doctrine/schema.yml
2010-02-08 15:29:11 UTC (rev 27741)
+++
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/config/doctrine/schema.yml
2010-02-08 15:46:35 UTC (rev 27742)
@@ -209,4 +209,12 @@
columns:
column_1: string(255)
column2: string(255)
- column__3: string(255)
\ No newline at end of file
+ column__3: string(255)
+
+ResourceType:
+ columns:
+ id:
+ type: enum
+ values: [type1, type2, type3]
+ primary: true
+ name: string(255)
Modified:
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/data/sql/schema.sql
===================================================================
---
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/data/sql/schema.sql
2010-02-08 15:29:11 UTC (rev 27741)
+++
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/data/sql/schema.sql
2010-02-08 15:46:35 UTC (rev 27742)
@@ -13,6 +13,7 @@
CREATE TABLE model_with_number_in_column (id INTEGER PRIMARY KEY
AUTOINCREMENT, column_1 VARCHAR(255), column2 VARCHAR(255), column__3
VARCHAR(255));
CREATE TABLE permission (id INTEGER PRIMARY KEY AUTOINCREMENT, name
VARCHAR(255));
CREATE TABLE profile (id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER,
first_name VARCHAR(255), last_name VARCHAR(255));
+CREATE TABLE resource_type (id VARCHAR(255), name VARCHAR(255), PRIMARY
KEY(id));
CREATE TABLE unique_test (id INTEGER PRIMARY KEY AUTOINCREMENT, unique_test1
VARCHAR(255) UNIQUE, unique_test2 VARCHAR(255), unique_test3 VARCHAR(255),
unique_test4 VARCHAR(255));
CREATE TABLE user (id INTEGER PRIMARY KEY AUTOINCREMENT, username VARCHAR(255)
UNIQUE, password VARCHAR(255), test VARCHAR(255));
CREATE TABLE user_group (user_id INTEGER, group_id INTEGER, PRIMARY
KEY(user_id, group_id));
Added:
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/ResourceTypeFormFilter.class.php
===================================================================
---
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/ResourceTypeFormFilter.class.php
(rev 0)
+++
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/ResourceTypeFormFilter.class.php
2010-02-08 15:46:35 UTC (rev 27742)
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * ResourceType filter form.
+ *
+ * @package symfony12
+ * @subpackage filter
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class ResourceTypeFormFilter extends BaseResourceTypeFormFilter
+{
+ public function configure()
+ {
+ }
+}
Property changes on:
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/ResourceTypeFormFilter.class.php
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added:
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/ResourceTypeForm.class.php
===================================================================
---
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/ResourceTypeForm.class.php
(rev 0)
+++
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/ResourceTypeForm.class.php
2010-02-08 15:46:35 UTC (rev 27742)
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * ResourceType form.
+ *
+ * @package symfony12
+ * @subpackage form
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class ResourceTypeForm extends BaseResourceTypeForm
+{
+ public function configure()
+ {
+ }
+}
Property changes on:
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/ResourceTypeForm.class.php
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added:
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceType.class.php
===================================================================
---
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceType.class.php
(rev 0)
+++
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceType.class.php
2010-02-08 15:46:35 UTC (rev 27742)
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * ResourceType
+ *
+ * This class has been auto-generated by the Doctrine ORM Framework
+ *
+ * @package symfony12
+ * @subpackage model
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class ResourceType extends BaseResourceType
+{
+}
Property changes on:
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceType.class.php
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added:
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceTypeTable.class.php
===================================================================
---
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceTypeTable.class.php
(rev 0)
+++
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceTypeTable.class.php
2010-02-08 15:46:35 UTC (rev 27742)
@@ -0,0 +1,5 @@
+<?php
+
+class ResourceTypeTable extends Doctrine_Table
+{
+}
Property changes on:
branches/1.3/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceTypeTable.class.php
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Modified:
branches/1.4/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php
===================================================================
---
branches/1.4/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php
2010-02-08 15:29:11 UTC (rev 27741)
+++
branches/1.4/lib/plugins/sfDoctrinePlugin/lib/generator/sfDoctrineFormGenerator.class.php
2010-02-08 15:46:35 UTC (rev 27742)
@@ -331,8 +331,9 @@
/**
* Returns a PHP string representing options to pass to a widget for a given
column.
*
- * @param sfDoctrineColumn $column
- * @return string The options to pass to the widget as a PHP string
+ * @param sfDoctrineColumn $column
+ *
+ * @return string The options to pass to the widget as a PHP string
*/
public function getWidgetOptionsForColumn($column)
{
@@ -342,16 +343,9 @@
{
$options[] = sprintf('\'model\' => $this->getRelatedModelName(\'%s\'),
\'add_empty\' => %s', $column->getRelationKey('alias'), $column->isNotNull() ?
'false' : 'true');
}
- else
+ else if ('enum' == $column->getDoctrineType() &&
is_subclass_of($this->getWidgetClassForColumn($column),
'sfWidgetFormChoiceBase'))
{
- switch ($column->getDoctrineType())
- {
- case 'enum':
- $values = $column->getDefinitionKey('values');
- $values = array_combine($values, $values);
- $options[] = "'choices' => " . str_replace("\n", '',
$this->arrayExport($values));
- break;
- }
+ $options[] = '\'choices\' =>
'.$this->arrayExport(array_combine($column['values'], $column['values']));
}
return count($options) ? sprintf('array(%s)', implode(', ', $options)) :
'';
@@ -456,8 +450,7 @@
}
break;
case 'enum':
- $values = array_combine($column['values'], $column['values']);
- $options[] = "'choices' => " . str_replace("\n", '',
$this->arrayExport($values));
+ $options[] = '\'choices\' => '.$this->arrayExport($column['values']);
break;
}
}
Modified:
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/FormGeneratorTest.php
===================================================================
---
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/FormGeneratorTest.php
2010-02-08 15:29:11 UTC (rev 27741)
+++
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/FormGeneratorTest.php
2010-02-08 15:46:35 UTC (rev 27742)
@@ -12,7 +12,7 @@
$fixtures = 'fixtures';
require_once(dirname(__FILE__).'/../bootstrap/functional.php');
-$t = new lime_test(40);
+$t = new lime_test(41);
$t->diag("Test that these models don't generate forms or filters classes");
$noFormsOrFilters = array('UserGroup', 'UserPermission', 'GroupPermission');
@@ -82,3 +82,15 @@
$test = new BlogArticleFormFilter();
$t->is($test->getWidget('author_id')->getOption('model'), 'BlogAuthor');
$t->is($test->getValidator('author_id')->getOption('model'), 'BlogAuthor');
+
+$t->diag('Check enum primary keys');
+try
+{
+ $test = new ResourceTypeForm();
+ $t->pass('enum primary key widgets work');
+}
+catch (InvalidArgumentException $e)
+{
+ $t->fail('enum primary key widgets work');
+ $t->diag(' '.$e->getMessage());
+}
Modified:
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/config/doctrine/schema.yml
===================================================================
---
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/config/doctrine/schema.yml
2010-02-08 15:29:11 UTC (rev 27741)
+++
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/config/doctrine/schema.yml
2010-02-08 15:46:35 UTC (rev 27742)
@@ -209,4 +209,12 @@
columns:
column_1: string(255)
column2: string(255)
- column__3: string(255)
\ No newline at end of file
+ column__3: string(255)
+
+ResourceType:
+ columns:
+ id:
+ type: enum
+ values: [type1, type2, type3]
+ primary: true
+ name: string(255)
Modified:
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/data/sql/schema.sql
===================================================================
---
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/data/sql/schema.sql
2010-02-08 15:29:11 UTC (rev 27741)
+++
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/data/sql/schema.sql
2010-02-08 15:46:35 UTC (rev 27742)
@@ -13,6 +13,7 @@
CREATE TABLE model_with_number_in_column (id INTEGER PRIMARY KEY
AUTOINCREMENT, column_1 VARCHAR(255), column2 VARCHAR(255), column__3
VARCHAR(255));
CREATE TABLE permission (id INTEGER PRIMARY KEY AUTOINCREMENT, name
VARCHAR(255));
CREATE TABLE profile (id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER,
first_name VARCHAR(255), last_name VARCHAR(255));
+CREATE TABLE resource_type (id VARCHAR(255), name VARCHAR(255), PRIMARY
KEY(id));
CREATE TABLE unique_test (id INTEGER PRIMARY KEY AUTOINCREMENT, unique_test1
VARCHAR(255) UNIQUE, unique_test2 VARCHAR(255), unique_test3 VARCHAR(255),
unique_test4 VARCHAR(255));
CREATE TABLE user (id INTEGER PRIMARY KEY AUTOINCREMENT, username VARCHAR(255)
UNIQUE, password VARCHAR(255), test VARCHAR(255));
CREATE TABLE user_group (user_id INTEGER, group_id INTEGER, PRIMARY
KEY(user_id, group_id));
Added:
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/ResourceTypeFormFilter.class.php
===================================================================
---
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/ResourceTypeFormFilter.class.php
(rev 0)
+++
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/ResourceTypeFormFilter.class.php
2010-02-08 15:46:35 UTC (rev 27742)
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * ResourceType filter form.
+ *
+ * @package symfony12
+ * @subpackage filter
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class ResourceTypeFormFilter extends BaseResourceTypeFormFilter
+{
+ public function configure()
+ {
+ }
+}
Property changes on:
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/filter/doctrine/ResourceTypeFormFilter.class.php
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added:
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/ResourceTypeForm.class.php
===================================================================
---
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/ResourceTypeForm.class.php
(rev 0)
+++
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/ResourceTypeForm.class.php
2010-02-08 15:46:35 UTC (rev 27742)
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * ResourceType form.
+ *
+ * @package symfony12
+ * @subpackage form
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class ResourceTypeForm extends BaseResourceTypeForm
+{
+ public function configure()
+ {
+ }
+}
Property changes on:
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/form/doctrine/ResourceTypeForm.class.php
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added:
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceType.class.php
===================================================================
---
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceType.class.php
(rev 0)
+++
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceType.class.php
2010-02-08 15:46:35 UTC (rev 27742)
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * ResourceType
+ *
+ * This class has been auto-generated by the Doctrine ORM Framework
+ *
+ * @package symfony12
+ * @subpackage model
+ * @author Your name here
+ * @version SVN: $Id$
+ */
+class ResourceType extends BaseResourceType
+{
+}
Property changes on:
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceType.class.php
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added:
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceTypeTable.class.php
===================================================================
---
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceTypeTable.class.php
(rev 0)
+++
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceTypeTable.class.php
2010-02-08 15:46:35 UTC (rev 27742)
@@ -0,0 +1,5 @@
+<?php
+
+class ResourceTypeTable extends Doctrine_Table
+{
+}
Property changes on:
branches/1.4/lib/plugins/sfDoctrinePlugin/test/functional/fixtures/lib/model/doctrine/ResourceTypeTable.class.php
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
--
You received this message because you are subscribed to the Google Groups
"symfony SVN" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/symfony-svn?hl=en.