}
}
+ protected function saveInlines($obj){
+ foreach($this->inlineInstances as $inlineInstance){
+ $inlineInstance->save($obj);
+ }
+ }
+
protected function _setupEditForm($form){
$this->_setupForm($form);
$this->setInlines($this->instance);
public function inlines(){return null;}
public function isValidInlines(){
- if ($this->inlineInstances==null)
- return true;
foreach($this->inlineInstances as &$il){
- if ($il->isValid()===false)
- return false;
+ if ($il->isValid()===false){
+ //return false;
+ }
}
return true;
}
}
protected function _getAddTemplate(){
- return 'admin/change.html';
+ return 'admin/add.html';
}
protected function _getChangeTemplate(){
$this->_setupEditForm($form);
if ( ($form->isValid()) && ($this->isValidInlines()) ) {
$item = $form->save();
+ $this->saveInlines($item);
AdminLog::logAction($request, $item, AdminLog::CHANGE);
$url = IPF_HTTP_URL_urlForView('IPF_Admin_Views_ListItems', array($lapp, $lmodel));
return new IPF_HTTP_Response_Redirect($url);
'perms'=>$this->getPerms($request),
'lmodel'=>$lmodel,
);
- return IPF_Shortcuts::RenderToResponse($this->_getAddTemplate(), $context, $request);
+ return IPF_Shortcuts::RenderToResponse($this->_getChangeTemplate(), $context, $request);
}
public function DeleteItem($request, $lapp, $lmodel, $o){
var $model = null;
var $parentModel = null;
var $formset = null;
- var $parentInstance = null;
-
- function __construct(&$parentModel,$parentInstance=null){
+
+ function __construct($parentModel,$data){
$this->parentModel = $parentModel;
- $this->parentInstance = $parentInstance;
$modelName = $this->getModelName();
$this->model = new $modelName();
- $this->createFormSet();
+ $this->createFormSet($data);
}
abstract function getModelName();
throw new IPF_Exception('Cannot get fkLocal for '.$this->getModelName());
}
- function createFormSet(){
+ function createFormSet(&$data){
$this->formset = array();
for($i=0; $i<$this->getAddNum(); $i++ ){
$form = IPF_Shortcuts::GetFormForModel($this->model, null, array('exclude'=>array($this->getFkName(),$this->getFkLocal())));
- $form->prefix = "add-$i";
+ $form->fields = array_merge(array(new IPF_Form_Field_Boolean(array('label'=>'Del','name'=>'delete_', 'widget_attrs'=>array('disabled'=>'disabled')))),$form->fields);
+ $form->prefix = 'add_'.get_class($this->model).'_'.$i;
+ $form->data = $data;
if ($i==0)
$form->isFirst = true;
else
$this->formset[] = $form;
}
}
+
+ function save(){
+
+ }
}
\ No newline at end of file