This is my DataObject:
RendementTool.php:
<?php
class RendementTool extends Page {
private static $db = array(
'RichtingPlatOno' => 'Varchar',
'RichtingPlatOost' => 'Varchar',
'RichtingPlatOzo' => 'Varchar',
'RichtingPlatZo' => 'Varchar',
'RichtingPlatZzo' => 'Varchar',
'RichtingPlatZuid' => 'Varchar',
'RichtingPlatZzw' => 'Varchar',
'RichtingPlatZw' => 'Varchar',
'RichtingPlatWzw' => 'Varchar',
'RichtingPlatWest' => 'Varchar',
'RichtingPlatWnw' => 'Varchar',
'RichtingSchuinAOno' => 'Varchar',
'RichtingSchuinAOost' => 'Varchar',
'RichtingSchuinAOzo' => 'Varchar',
'RichtingSchuinAZo' => 'Varchar',
'RichtingSchuinAZzo' => 'Varchar',
'RichtingSchuinAZuid' => 'Varchar',
'RichtingSchuinAZzw' => 'Varchar',
'RichtingSchuinAZw' => 'Varchar',
'RichtingSchuinAWzw' => 'Varchar',
'RichtingSchuinAWest' => 'Varchar',
'RichtingSchuinAWnw' => 'Varchar',
'RichtingSchuinBOno' => 'Varchar',
'RichtingSchuinBOost' => 'Varchar',
'RichtingSchuinBOzo' => 'Varchar',
'RichtingSchuinBZo' => 'Varchar',
'RichtingSchuinBZzo' => 'Varchar',
'RichtingSchuinBZuid' => 'Varchar',
'RichtingSchuinBZzw' => 'Varchar',
'RichtingSchuinBZw' => 'Varchar',
'RichtingSchuinBWzw' => 'Varchar',
'RichtingSchuinBWest' => 'Varchar',
'RichtingSchuinBWnw' => 'Varchar',
'RichtingSchuinCOno' => 'Varchar',
'RichtingSchuinCOost' => 'Varchar',
'RichtingSchuinCOzo' => 'Varchar',
'RichtingSchuinCZo' => 'Varchar',
'RichtingSchuinCZzo' => 'Varchar',
'RichtingSchuinCZuid' => 'Varchar',
'RichtingSchuinCZzw' => 'Varchar',
'RichtingSchuinCZw' => 'Varchar',
'RichtingSchuinCWzw' => 'Varchar',
'RichtingSchuinCWest' => 'Varchar',
'RichtingSchuinCWnw' => 'Varchar',
'RichtingSchuinDOno' => 'Varchar',
'RichtingSchuinDOost' => 'Varchar',
'RichtingSchuinDOzo' => 'Varchar',
'RichtingSchuinDZo' => 'Varchar',
'RichtingSchuinDZzo' => 'Varchar',
'RichtingSchuinDZuid' => 'Varchar',
'RichtingSchuinDZzw' => 'Varchar',
'RichtingSchuinDZw' => 'Varchar',
'RichtingSchuinDWzw' => 'Varchar',
'RichtingSchuinDWest' => 'Varchar',
'RichtingSchuinDWnw' => 'Varchar',
'RichtingSchuinEOno' => 'Varchar',
'RichtingSchuinEOost' => 'Varchar',
'RichtingSchuinEOzo' => 'Varchar',
'RichtingSchuinEZo' => 'Varchar',
'RichtingSchuinEZzo' => 'Varchar',
'RichtingSchuinEZuid' => 'Varchar',
'RichtingSchuinEZzw' => 'Varchar',
'RichtingSchuinEZw' => 'Varchar',
'RichtingSchuinEWzw' => 'Varchar',
'RichtingSchuinEWest' => 'Varchar',
'RichtingSchuinEWnw' => 'Varchar'
);
private static $has_many = array(
'RendementToolPaneels' => 'RendementToolPaneel'
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$config = new GridFieldConfig_RelationEditor;
$config->getComponentByType('GridFieldDataColumns')->setDisplayFields(array('Name' => 'Name'));
$PanelenField = new GridField(
'Panelen', // Field name
'Panelen', // Field title
$this->RendementToolPaneels(), // List of all related students
$config
);
$fields->addFieldToTab('Root.Panelen', $PanelenField);
$fields->addFieldToTab('Root.Instellingen', new HeaderField("Platdak"));
$fields->addFieldToTab('Root.Instellingen',
new FieldGroup(
new TextField('RichtingPlatOno', 'ONO', '', '5'),
new TextField('RichtingPlatOost', 'Oost', '', '5'),
new TextField('RichtingPlatOzo', 'OZO', '', '5'),
new TextField('RichtingPlatZo', 'ZO', '', '5'),
new TextField('RichtingPlatZzo', 'ZZO', '', '5'),
new TextField('RichtingPlatZuid', 'Zuid', '', '5'),
new TextField('RichtingPlatZzw', 'ZZW', '', '5'),
new TextField('RichtingPlatZw', 'ZW', '', '5'),
new TextField('RichtingPlatWzw', 'WZW', '', '5'),
new TextField('RichtingPlatWest', 'West', '', '5'),
new TextField('RichtingPlatWnw', 'WNW', '', '5')
));
$fields->addFieldToTab("Root.Instellingen", new HeaderField("Schuindak 0-10 graden"));
$fields->addFieldToTab('Root.Instellingen', new FieldGroup(
new TextField('RichtingSchuinAOno', 'ONO', '', '5'),
new TextField('RichtingSchuinAOost', 'Oost', '', '5'),
new TextField('RichtingSchuinAOzo', 'OZO', '', '5'),
new TextField('RichtingSchuinAZo', 'ZO', '', '5'),
new TextField('RichtingSchuinAZzo', 'ZZO', '', '5'),
new TextField('RichtingSchuinAZuid', 'Zuid', '', '5'),
new TextField('RichtingSchuinAZzw', 'ZZW', '', '5'),
new TextField('RichtingSchuinAZw', 'ZW', '', '5'),
new TextField('RichtingSchuinAWzw', 'WZW', '', '5'),
new TextField('RichtingSchuinAWest', 'West', '', '5'),
new TextField('RichtingSchuinAWnw', 'WNW', '', '5')
));
$fields->addFieldToTab("Root.Instellingen", new HeaderField("Schuindak 10-30 graden"));
$fields->addFieldToTab('Root.Instellingen', new FieldGroup(
new TextField('RichtingSchuinBOno', 'ONO', '', '5'),
new TextField('RichtingSchuinBOost', 'Oost', '', '5'),
new TextField('RichtingSchuinBOzo', 'OZO', '', '5'),
new TextField('RichtingSchuinBZo', 'ZO', '', '5'),
new TextField('RichtingSchuinBZzo', 'ZZO', '', '5'),
new TextField('RichtingSchuinBZuid', 'Zuid', '', '5'),
new TextField('RichtingSchuinBZzw', 'ZZW', '', '5'),
new TextField('RichtingSchuinBZw', 'ZW', '', '5'),
new TextField('RichtingSchuinBWzw', 'WZW', '', '5'),
new TextField('RichtingSchuinBWest', 'West', '', '5'),
new TextField('RichtingSchuinBWnw', 'WNW', '', '5')
));
$fields->addFieldToTab("Root.Instellingen", new HeaderField("Schuindak 30-50 graden"));
$fields->addFieldToTab('Root.Instellingen', new FieldGroup(
new TextField('RichtingSchuinCOno', 'ONO', '', '5'),
new TextField('RichtingSchuinCOost', 'Oost', '', '5'),
new TextField('RichtingSchuinCOzo', 'OZO', '', '5'),
new TextField('RichtingSchuinCZo', 'ZO', '', '5'),
new TextField('RichtingSchuinCZzo', 'ZZO', '', '5'),
new TextField('RichtingSchuinCZuid', 'Zuid', '', '5'),
new TextField('RichtingSchuinCZzw', 'ZZW', '', '5'),
new TextField('RichtingSchuinCZw', 'ZW', '', '5'),
new TextField('RichtingSchuinCWzw', 'WZW', '', '5'),
new TextField('RichtingSchuinCWest', 'West', '', '5'),
new TextField('RichtingSchuinCWnw', 'WNW', '', '5')
));
$fields->addFieldToTab("Root.Instellingen", new HeaderField("Schuindak 50-70 graden"));
$fields->addFieldToTab('Root.Instellingen', new FieldGroup(
new TextField('RichtingSchuinDOno', 'ONO', '', '5'),
new TextField('RichtingSchuinDOost', 'Oost', '', '5'),
new TextField('RichtingSchuinDOzo', 'OZO', '', '5'),
new TextField('RichtingSchuinDZo', 'ZO', '', '5'),
new TextField('RichtingSchuinDZzo', 'ZZO', '', '5'),
new TextField('RichtingSchuinDZuid', 'Zuid', '', '5'),
new TextField('RichtingSchuinDZzw', 'ZZW', '', '5'),
new TextField('RichtingSchuinDZw', 'ZW', '', '5'),
new TextField('RichtingSchuinDWzw', 'WZW', '', '5'),
new TextField('RichtingSchuinDWest', 'West', '', '5'),
new TextField('RichtingSchuinDWnw', 'WNW', '', '5')
));
$fields->addFieldToTab("Root.Instellingen", new HeaderField("Schuindak 70-90 graden"));
$fields->addFieldToTab('Root.Instellingen', new FieldGroup(
new TextField('RichtingSchuinEOno', 'ONO', '', '5'),
new TextField('RichtingSchuinEOost', 'Oost', '', '5'),
new TextField('RichtingSchuinEOzo', 'OZO', '', '5'),
new TextField('RichtingSchuinEZo', 'ZO', '', '5'),
new TextField('RichtingSchuinEZzo', 'ZZO', '', '5'),
new TextField('RichtingSchuinEZuid', 'Zuid', '', '5'),
new TextField('RichtingSchuinEZzw', 'ZZW', '', '5'),
new TextField('RichtingSchuinEZw', 'ZW', '', '5'),
new TextField('RichtingSchuinEWzw', 'WZW', '', '5'),
new TextField('RichtingSchuinEWest', 'West', '', '5'),
new TextField('RichtingSchuinEWnw', 'WNW', '', '5')
));
return $fields;
}
}
class RendementTool_Controller extends Page_Controller {
private static $allowed_actions = array('OfferForm');
function OfferForm()
{
return new OfferForm($this,'OfferForm');
}
}
RendementToolPaneel.php
<?php
class RendementToolPaneel extends DataObject {
private static $db = array(
"Name" => "Varchar",
"PaneelType" => "Enum(array('Poly kristallijn', 'Mono Full-Black', 'Thinfilm Glas', 'Mono kristallijn', 'CIS techniek', 'High efficiënt'))",
"PaneelWatt" => "Int",
"PaneelAfmeting" => "Varchar",
"PaneelAfwijking" => "Int",
);
private static $has_one = array(
'RendementTool' => 'RendementTool',
'Photo' => 'Image'
);
private static $has_many = array(
'RendementToolPaneelPrices' => 'RendementToolPaneelPrice',
);
public function getCMSFields() {
$fields = parent::getCMSFields();
return $fields;
}
}