From: avl Date: Thu, 11 Sep 2008 07:07:20 +0000 (+0300) Subject: Small fixes X-Git-Tag: 0.5~492 X-Git-Url: https://git.andy128k.dev/?a=commitdiff_plain;h=d85a912d0e665642b818cd5d4576d93294cdd513;p=ipf.git Small fixes --- diff --git a/ipf/admin/model.php b/ipf/admin/model.php index 3bffff0..07f52e2 100644 --- a/ipf/admin/model.php +++ b/ipf/admin/model.php @@ -47,6 +47,12 @@ class IPF_Admin_Model{ } } + protected function saveInlines($obj){ + foreach($this->inlineInstances as $inlineInstance){ + $inlineInstance->save($obj); + } + } + protected function _setupEditForm($form){ $this->_setupForm($form); $this->setInlines($this->instance); @@ -65,11 +71,10 @@ class IPF_Admin_Model{ 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; } @@ -154,7 +159,7 @@ class IPF_Admin_Model{ } protected function _getAddTemplate(){ - return 'admin/change.html'; + return 'admin/add.html'; } protected function _getChangeTemplate(){ @@ -193,6 +198,7 @@ class IPF_Admin_Model{ $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); @@ -213,7 +219,7 @@ class IPF_Admin_Model{ '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){ diff --git a/ipf/admin/modelinline.php b/ipf/admin/modelinline.php index 7951b83..b7b32c9 100644 --- a/ipf/admin/modelinline.php +++ b/ipf/admin/modelinline.php @@ -5,16 +5,14 @@ abstract class IPF_Admin_ModelInline{ 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(); @@ -50,11 +48,13 @@ abstract class IPF_Admin_ModelInline{ 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 @@ -63,4 +63,8 @@ abstract class IPF_Admin_ModelInline{ $this->formset[] = $form; } } + + function save(){ + + } } \ No newline at end of file diff --git a/ipf/admin/templates/admin/change.html b/ipf/admin/templates/admin/change.html index 2877aac..5261399 100644 --- a/ipf/admin/templates/admin/change.html +++ b/ipf/admin/templates/admin/change.html @@ -22,7 +22,7 @@ {if $formset.isFirst} {foreach $formset.fields as $fieldname=>$field} - {$formset.field($fieldname).labelTag()|safe} + {$formset.field($fieldname).label} {/foreach} {/if}