$this->setInlines($this->model, &$data);
if ($form->isValid()) {
$item = $form->save();
+ $this->saveInlines($item);
AdminLog::logAction($request, $item, AdminLog::ADDITION);
$url = IPF_HTTP_URL_urlForView('IPF_Admin_Views_ListItems', array($lapp, $lmodel));
return new IPF_HTTP_Response_Redirect($url);
'page_title'=>'Add '.$this->modelName,
'classname'=>$this->modelName,
'form'=>$form,
+ 'inlineInstances'=>$this->inlineInstances,
'lapp'=>$lapp,
+ 'perms'=>$this->getPerms($request),
'lmodel'=>$lmodel,
);
return IPF_Shortcuts::RenderToResponse($this->_getAddTemplate(), $context, $request);
function getLegend(){
return get_class($this->model);
}
-
function isValid(){
foreach($this->formset as &$form){
}
}
- function save(){
+ function save($parent_obj){
+
$fk_name = $this->getFkName();
if ($this->parentModel->exists()){
}
foreach($this->formset as $form){
- unset($form->cleaned_data[0]);
if ($form->isValid()){
if ($form->isAdd){
- $form->cleaned_data[$fk_name] = $this->parentModel;
+ unset($form->cleaned_data[0]);
+ $form->cleaned_data[$fk_name] = $parent_obj;
$form->save();
}
}
{$form.render_table}
</table>
</fieldset>
+ {foreach $inlineInstances as $inline}
+ <fieldset class="inlineTabular" style="border:none; width:auto; float:left; padding:0; margin:10px 10px 10px 0;">
+ <legend>{$inline->getLegend()}</legend>
+ <table>
+ {foreach $inline.formset as $formset}
+ {if $formset.isFirst}
+ <tr>
+ {foreach $formset.fields as $fieldname=>$field}
+ <th{if $formset.field($fieldname).label=='Del'} style="width:20px;"{/if}>{$formset.field($fieldname).label}</th>
+ {/foreach}
+ </tr>
+ {/if}
+ <tr>
+ {foreach $formset.fields as $fieldname=>$field}
+ <td>{$formset.field($fieldname).fieldErrors()}{$formset.field($fieldname)|safe}</td>
+ {/foreach}
+ </tr>
+ {/foreach}
+ </table>
+ </fieldset>
+ {/foreach}
+ <div style="clear:both;"></div>
<div class="submit-row">
<input type="submit" value="Save" class="default" />