ICT:THE pattern checklist
Appearance
ICT: Pattern Checklist — Dashboard, Form, Template, Cargo
This checklist summarizes the reusable pattern for creating a new structured data module.
1. Create Template:EntityName
<noinclude>
{{#cargo_declare:
_table=TableName
|field1=String
|field2=Text
|field3=Date
|field4=Page
}}
{{#forminput:form=EntityName}}
</noinclude>
{{#cargo_store:
field1={{{field1|}}}
|field2={{{field2|}}}
|field3={{{field3|}}}
|field4={{{field4|}}}
}}
== {{{field1|}}} ==
Checklist:
- Template name = EntityName
- Cargo table name = TableName
- All fields declared in
#cargo_declare #forminput:form=EntityNamepresent in
2. Create Form:EntityName
<noinclude>
Form for creating and editing EntityName pages.
</noinclude>
{{{info
|no summary
|no preview
|no minor edit
|no watch
|no footer
}}}
{{{for template|EntityName}}}
{| class="formtable"
! Field 1
| {{{field|field1|mandatory}}}
|-
! Field 2
| {{{field|field2|input type=textarea}}}
|-
! Field 3
| {{{field|field3|input type=datepicker}}}
|-
! Field 4
| {{{field|field4|input type=combobox|values from namespace=EntityName}}}
|}
{{{standard input|save}}}
{{{end template}}}
Checklist:
infoblock BEFOREfor templatestandard input|saveincluded- Template name matches exactly
3. Create Template:EntityRow
<includeonly>
|-
| {{#formlink:form=EntityName
|target={{{_pageName}}}
|link text={{{field1}}}
|returnto=Dashboard:EntityName
}}
| {{{field2}}}
| {{{field3}}}
</includeonly>
Checklist:
- First column uses
#formlink target={{{_pageName}}}returntopoints to the Dashboard
4. Create Dashboard:EntityName
= EntityName Dashboard =
{| class="wikitable sortable"
! Field1 !! Field2 !! Field3
{{#cargo_query:
tables=TableName
|fields=_pageName,field1,field2,field3
|where=_pageNamespace=EntityName
|order by=field1
|format=template
|template=EntityRow
|named args=yes
|cache=no
}}
|}
{{#forminput:
form=EntityName
|namespace=EntityName
|button text=➕ New EntityName
|returnto=Dashboard:EntityName
}}
Checklist:
- Cargo query uses correct table and fields
format=templatewith EntityRow- New‑record button uses
#forminput
5. Final Verification
- Creating a new record opens
Special:FormEdit/EntityName/… - Editing via dashboard opens
?action=formedit - No MediaWiki editor clutter appears
- Cargo table updates automatically
- All names (Template, Form, Namespace) match exactly
This checklist can be reused for every new module (Persons, Locations, Events, Assets, etc.).