Did you try setting the parent on the SuppliersTemplate document?
Sachn Mittal wrote:
One thing is see is that default parent has to be
fully qualified page name.
So it should be aeternam.Suppliers and not Suppliers.
Even when I make this change still the object for supplier is created under
aeternam.SupplierClass and not under aeternam.Suppliers.
When I go and edit this new object (wiki) the on right I see parent as
aeternam.SupplierClass. So now there I change this to aeternam.Suppliers,
the created supplier object moves to Suppliers page.
What I have to do is to create this object directly under
aeternam.Suppliers.
I believed setting:
#set( $defaultparent = "aeternam.Suppliers") should have worked but its not.
Thanks
Sachin
Sachn Mittal wrote:
Hi,
In one of your tutorials (referencing FAQ application) you have shown how
to create custom classes, add properties to it and create objects of these
classes.
This was well understood and thanks for the easy to understand tutorial.
Following the steps I create a space called aeternam and added a page
SupplierClass under it.
Further I create a page "Suppliers" under aeternam space, on which I
pasted the velocity template code to create objects of the SupplierClass
and view create objects.
All works fine. Only problem is the objects are created under the parent
SupplierClass and not under parent Suppliers.
I have explicitly mentioned the parent using the code:
#set( $class = "Supplier")
#set( $defaultparent = "Suppliers")
#set( $defaultweb = "aeternam")
#set( $doc1new =
$xwiki.getDocument("${doc.space}.${class}ClassSheet").isNew())
#set( $doc2new =
$xwiki.getDocument("${doc.space}.${class}ClassTemplate").isNew())
#if (!($doc1new||$doc2new))
1.1 Create a new Supplier
To create a new supplier, you should first choose a name for your
supplier.
<form action="" id="newdoc" method="post">
<div>
<input type="hidden" name="parent"
value="${defaultparent}"/>
<input type="hidden" name="template"
value="${doc.web}.${class}ClassTemplate"/>
<input type="hidden" name="sheet" value="1"/>
Space: <input type="text" readonly="true"
name="webname"
value="${defaultweb}" size="8"/>
Supplier: <input type="text" name="name" value="Supplier
Name"/>
<br/>
<br/>
## TODO: remove this onclick
<input type="button" value="Create this supplier" onclick='if
(updateName(this.form.name)) {this.form.action="../../inline/" +
this.form.webname.value + "/" + this.form.name.value; this.form.submit();
}'/>
</div>
</form>
1.1 Existing Suppliers
#set ($sql = ", BaseObject as obj where obj.name=doc.fullName and
obj.className='${doc.web}.${class}Class' and
obj.name<>'${doc.web}.${class}ClassTemplate'")
#foreach ($item in $xwiki.searchDocuments($sql))
* [$item]
#end
#end
So what do I have to do to create objects of a class under some other
parent page not under the default class page.
Next after a document object is created I would like to update the same
document, just like in create is there a template or tutorial that would
help me in understanding how to update a object, so as to complete the
CRUD flow.
Thanks
Sachin