silverstripe-framework/tests/php/Forms/GridField/GridFieldDetailFormTest/Person.php

79 lines
2.0 KiB
PHP
Raw Normal View History

2016-10-14 03:30:05 +02:00
<?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';
2016-10-14 03:30:05 +02:00
private static $db = [
'FirstName' => 'Varchar',
'Surname' => 'Varchar'
];
2016-10-14 03:30:05 +02:00
private static $has_one = [
'Group' => PeopleGroup::class,
'PolymorphicGroup' => DataObject::class,
];
2016-10-14 03:30:05 +02:00
private static $many_many = [
'Categories' => Category::class,
'FavouriteGroups' => PeopleGroup::class
];
2016-10-14 03:30:05 +02:00
private static $many_many_extraFields = [
'Categories' => [
'IsPublished' => 'Boolean',
'PublishedBy' => 'Varchar'
]
];
2016-10-14 03:30:05 +02:00
private static $default_sort = '"FirstName"';
2016-10-14 03:30:05 +02:00
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;
}
2016-10-14 03:30:05 +02:00
public function getCMSValidator()
{
return new RequiredFields(
[
'FirstName',
'Surname'
]
);
}
public function CMSEditLink()
{
return sprintf('my-admin/%d', $this->ID);
}
2016-10-14 03:30:05 +02:00
}