+1 This would obviously work only for non-terminal/nested pages.
You might also want to think about handling excludes (i.e. all parent types *except* this and that), and probably the case when you have both includes and excludes. Also, the create UI (among others) would need to change a bit on the parent selector (once you select a template provider with such restrictions), probably by filtering the tree modal to show only pages of the restricted type. Thanks, Eduard On Tue, Nov 29, 2016 at 12:24 PM, Vincent Massol <[email protected]> wrote: > > > On 29 Nov 2016, at 10:23, Marius Dumitru Florea < > [email protected]> wrote: > > > > Hi devs, > > > > I have an XWiki application that creates two types of pages. Let's call > > them Category and Procedure. The application has two template providers > > that allow the users to create Categories and Procedures anywhere on the > > wiki using the Create Page menu. I would like to restrict the creation > like > > this: > > > > * You can create a new Category page either as a top level page or as a > > child of an existing Category page > > * You can create a new Procedure page only as a child of an existing > > Category or Procedure page > > > > Category -> ... Category -> Procedure -> ... -> Procedure > > > > One solution to achieve this is to add a new property to the template > > provider, e.g. "parentType", that specifies the type of pages (XClass > > references) that are allowed as parent. We would use a Database List with > > multiple selection and relational storage. We can use the empty string to > > represent "no parent" (i.e. top level page). An empty list would mean no > > parent type restriction. > > > > Category template provider: {parentType: ["CategoryClass", ""]} > > Procedure template provider: {parentType: ["CategoryClass", > > "ProcedureClass"]} > > > > Do you think this is useful? Do you see any problem with this solution? > Is > > it worth implementing? > > If you need it then it means there’s a need (even though possibly not a > very common one). The only downside I see is the complexity it adds for the > user. We may want to think about an Advanced section in the template > provide UI screen and move advanced options there. > > Thanks > -Vincent > > > Thanks, > > Marius > >

