[pmwiki-users] Linking WikiForms to WikiForms

John Rankin john.rankin at affinity.co.nz
Tue Aug 22 18:12:29 CDT 2006

On Tuesday, 22 August 2006 5:20 PM, Hsing-Foo Wang <hsingfoo at gmail.com> wrote:
>Some questions if I may:
>> - Specify the type of form to use with a "group suffix"
>>   If you have groups ProjectX-Issue and ProjectX-Activity the
>>   recipe will use Issue.FormTemplate and Activity.FormTemplate,
>>   so ProjectX-Issue and ProjectY-Issue will both use the
>>   Issue.FormTemplate. This gives separate issue lists for ProjectX
>>   and ProjectY, but using the same template.
>Got this one, except I now focussing on handling projects by their
>number and thus page instead of group for each project. This will give
>(somehow) the opportunity to have a seperate 'total view' of all
>issues and activities where each issue and activity 'record' has a
>(hidden?) field related to the projectpage based on the projectpage
>suffix (e.g. 00001)
>Dunno yet if my approach is feasable...

A PmWiki group has to start with an uppercase letter, so you'll need 
to make the groups P00001-Issue, P00001-Activity, and so on. So you
have a Project.00001 page, that points to the P00001-Activity group,
a Project.00002 page that points to a P00002-Issue group, and so on.
>> - Specify a form page title with the (title) field type
>>   This will cause the page named Project.00001 to have a title,
>>   such as ProjectX. It also creates the option of generating
>>   markup of the form: (:wikilist group={$Title}-Issue :) to
>>   produce a list of issues for the current project. Note that
>>   you don't have to give each project a title unless you choose
>>   to; you can have groups 00001-Issue, 00001-Activity and this
>>   will work too.
>Same here, chewing on projects based on groups or projects based on
>individual pages. I now use project pages and groups for issues and
>activities (e.g. projects.00001, activities.00001 and issues.00001)
>Again, this way I can browse ALL projects, issues and activities with
>the (:wikilist:) directive. Now how to have the sepcific issues and
>activities listed AND created per individual project page ;-)

Let's take Issue as an example, from which we can generalise to other
project attributes. As I understand your data model, there is a one 
to many relationship between a project and its Issues.
So you have 2 options:

a) the option above, where you make the project identifier part of
   the group name and have separate Issue groups for each project;
   thus P00001-Issue.00003 is issue 3 for project 1

b) have a Project group and a single Issue group, and make the
   project number an attribute of the issue; thus Issue.00001
   may have an attribute Project.00002 and Issue.00002 may have
   an attribute Project.00005

I think option b is harder to maintain, because you have to
know the project number whenever you create a new Issue.
With option a, you navigate from (say) Project.00007 to
P00007-Issues.NewIssue, so the next issue is automatically
associated with the correct project.
>> - Make a field take a particular value with the (hide) type
>>   This option should let you generate the required wikilist
>>   markup automatically when you create a new project. This
>>   feature *does not* currently provide the capability you
>>   need, as you can't properly insert (: ... :) markup
>>   inside a "hide" field value. At the moment, you will
>>   need to enter the required markup manually, but a fix
>>   may be fairly straightforward.
>ok, read the above, chewing on what you try to explain exactly.
>More to come.

You need to insert the following markup on Project.nnnnn pages:

    (:wikilist group=P{$Name}nnnnn-Issue :)

to get a list of the issues for the current project -- PmWiki
translates this into group=Pnnnnn-Issue so you get a list of
issues for the specified project
>> - Define a new markup to extract the group prefix
>>   You'll need a way to generate a link from 00001-Issue to
>>   Project.00001. This will require you to define a new
>>   format variable, {$GroupPrefix} that extracts the text
>>   from in front of -... in the group name. Then you can
>>   put this in a GroupHeader or GroupFooter in the issue
>>   and activity groups, to link back to the project page.
>I have no expertise in creating custom Markup's, dunno if this is
>needed yet. I guess that depends on the structure of projects and
>related items (per page or per group)

Once the above approach is working, adding this bit will be
easy; so put it to sone side for now.
>> The above may give some useful ideas for how to get started.
>> I'd be inclined to omit the title option in the first
>> instance and focus on getting the overall group and page
>> structure working, using numeric page names for everything.
>Thanks for your help.

John Rankin

More information about the pmwiki-users mailing list