<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mwiki.costasano.club/index.php?action=history&amp;feed=atom&amp;title=ICT%3ATHE_pattern_checklist</id>
	<title>ICT:THE pattern checklist - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mwiki.costasano.club/index.php?action=history&amp;feed=atom&amp;title=ICT%3ATHE_pattern_checklist"/>
	<link rel="alternate" type="text/html" href="https://mwiki.costasano.club/index.php?title=ICT:THE_pattern_checklist&amp;action=history"/>
	<updated>2026-07-23T01:06:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://mwiki.costasano.club/index.php?title=ICT:THE_pattern_checklist&amp;diff=506&amp;oldid=prev</id>
		<title>Mngr: Created page with &quot;= ICT: Pattern Checklist — Dashboard, Form, Template, Cargo =  This checklist summarizes the reusable pattern for creating a new structured data module.  == 1. Create Template:EntityName ==  &lt;pre&gt; &lt;noinclude&gt; {{#cargo_declare:  _table=TableName  |field1=String  |field2=Text  |field3=Date  |field4=Page }} {{#forminput:form=EntityName}} &lt;/noinclude&gt;  {{#cargo_store:  field1={{{field1|}}}  |field2={{{field2|}}}  |field3={{{field3|}}}  |field4={{{field4|}}} }}  == {{{field...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mwiki.costasano.club/index.php?title=ICT:THE_pattern_checklist&amp;diff=506&amp;oldid=prev"/>
		<updated>2026-02-08T17:07:41Z</updated>

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