mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
79 lines
2.0 KiB
PHP
79 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace SilverStripe\Forms\Tests\GridField\GridFieldDetailFormTest;
|
|
|
|
use SilverStripe\Dev\TestOnly;
|
|
use SilverStripe\Forms\GridField\GridField;
|
|
use SilverStripe\Forms\GridField\GridFieldConfig_RelationEditor;
|
|
use SilverStripe\Forms\RequiredFields;
|
|
use SilverStripe\ORM\DataObject;
|
|
|
|
class Person extends DataObject implements TestOnly
|
|
{
|
|
private static $table_name = 'GridFieldDetailFormTest_Person';
|
|
|
|
private static $db = [
|
|
'FirstName' => 'Varchar',
|
|
'Surname' => 'Varchar'
|
|
];
|
|
|
|
private static $has_one = [
|
|
'Group' => PeopleGroup::class,
|
|
'PolymorphicGroup' => DataObject::class,
|
|
];
|
|
|
|
private static $many_many = [
|
|
'Categories' => Category::class,
|
|
'FavouriteGroups' => PeopleGroup::class
|
|
];
|
|
|
|
private static $many_many_extraFields = [
|
|
'Categories' => [
|
|
'IsPublished' => 'Boolean',
|
|
'PublishedBy' => 'Varchar'
|
|
]
|
|
];
|
|
|
|
private static $default_sort = '"FirstName"';
|
|
|
|
public function getCMSFields()
|
|
{
|
|
$fields = parent::getCMSFields();
|
|
// TODO No longer necessary once FormScaffolder uses GridField
|
|
$fields->replaceField(
|
|
'Categories',
|
|
GridField::create(
|
|
'Categories',
|
|
'Categories',
|
|
$this->Categories(),
|
|
GridFieldConfig_RelationEditor::create()
|
|
)
|
|
);
|
|
$fields->replaceField(
|
|
'FavouriteGroups',
|
|
GridField::create(
|
|
'FavouriteGroups',
|
|
'Favourite Groups',
|
|
$this->FavouriteGroups(),
|
|
GridFieldConfig_RelationEditor::create()
|
|
)
|
|
);
|
|
return $fields;
|
|
}
|
|
|
|
public function getCMSValidator()
|
|
{
|
|
return new RequiredFields(
|
|
[
|
|
'FirstName',
|
|
'Surname'
|
|
]
|
|
);
|
|
}
|
|
|
|
public function CMSEditLink()
|
|
{
|
|
return sprintf('my-admin/%d', $this->ID);
|
|
}
|
|
}
|