GSOC Proposal Link: [[https://phabricator.wikimedia.org/T161609 | https://phabricator.wikimedia.org/T161609]]
Project worked on: [[ https://www.mediawiki.org/wiki/Extension:Cargo | Cargo]], [[https://www.mediawiki.org/wiki/Extension:Page_Forms |Page Forms]]
Github Mirror Repository - Cargo: [[https://github.com/wikimedia/mediawiki-extensions-Cargo | https://github.com/wikimedia/mediawiki-extensions-Cargo]]
Github Mirror Repository - Page Forms: [[https://github.com/wikimedia/mediawiki-extensions-PageForms | https://github.com/wikimedia/mediawiki-extensions-PageForms]]
Primary Project Page: [[https://www.mediawiki.org/wiki/Extension:Cargo|https://www.mediawiki.org/wiki/Extension:Cargo]]
= Aim of the GSOC project =
= Planned Objectives =
# Add support for declaring and querying over hierarchy fields in Cargo Extension.
# Add support for query using new Cargo keyword - “WITHIN”.
# Modify Cargo’s Drilldown interface to incorporate hierarchy fields.
# Add support for hierarchy fields in the Page Forms extension to set default input type as tree for hierarchy field.
# Add support for hierarchy fields in the helper pages of Page Forms extension for compatibility with Special:CreateClass and Special:CreateTemplate.
= Change log =
===== Add support for declaring and querying over hierarchy fields in Cargo Extension =====
|Change Link|Description|
|https://gerrit.wikimedia.org/r/#/c/356901/ | Feature: Hierarchy option in Cargo Declare|
|https://gerrit.wikimedia.org/r/#/c/359793/ | Feature : Hierarchy Structure Table for Hierarchy Field|
|https://gerrit.wikimedia.org/r/#/c/360916/ | Fix Populate Hierarchy fields|
|https://gerrit.wikimedia.org/r/#/c/363523/ | Add new column "field_helper_tables" to "cargo_tables" , Fix dbjoin error by creating above new field|
|https://gerrit.wikimedia.org/r/#/c/373600/ | Make hierarchy additional parameter order insensitive|
===== Add support for query using new Cargo keyword - “WITHIN” ======
|Change Link|Description|
|https://gerrit.wikimedia.org/r/#/c/363178/ | Add feature for WITHIN and HOLDS WITHIN for hierarchy fields|
===== Modify Cargo’s Drilldown interface to incorporate hierarchy fields ======
|Change Link|Description|
|https://gerrit.wikimedia.org/r/#/c/367808/ | Make static function of CargoHierarchy suitable for extending the class|
|https://gerrit.wikimedia.org/r/#/c/365091/ | Add support for hierarchy fields in Drilldown|
|https://gerrit.wikimedia.org/r/#/c/372232/ | Add feature to collapse deeper levels of hierarchy to show maximum of \$wgCargoMaxHierarchyDrilldownValues nodes|
|https://gerrit.wikimedia.org/r/#/c/372526/ | Fix: Within filter not being applied with other filters|
|https://gerrit.wikimedia.org/r/#/c/372563/ | Perform literal "drilldown" in the applied filter line for hierarchy field in case of within filter|
===== Add support for hierarchy fields in the Page Forms extension to set default input type as tree for hierarchy field ======
|Change Link|Description|
|https://gerrit.wikimedia.org/r/#/c/356928/ | Feature : Adding tree as default type for hierarchy|
===== Add support for hierarchy fields in the helper pages of Page Forms extension for compatibility with Special:CreateClass and Special:CreateTemplate ======
|Change Link|Description|
|https://gerrit.wikimedia.org/r/#/c/371512/ , https://gerrit.wikimedia.org/r/#/c/371574/ | Fix : No comma escaping for hierarchy structure|
|https://gerrit.wikimedia.org/r/#/c/371160/ | Add hierarchy field creation in Special:CreateTemplate|
|https://gerrit.wikimedia.org/r/#/c/371583/ | Add hierarchy field creation in Special:CreateClass|
===== Other miscellaneous changes that were required ======
|Change Link|Description|
|https://gerrit.wikimedia.org/r/#/c/361287/ | Fix : When table is deleted Drilldown crashes|
|https://gerrit.wikimedia.org/r/#/c/361291/ | Fix : cargoRecreateData.php crash after the template is deleted by the user.|
|https://gerrit.wikimedia.org/r/#/c/361275/ | Fix Index Naming of Multi valued fields (lists)|
|https://gerrit.wikimedia.org/r/#/c/371206/ | Rename CargoHierarchy.php and its class variable|
|https://gerrit.wikimedia.org/r/#/c/372082/ | Add validation for hierarchy input|
=== Link to all the merged commits ===
[[https://github.com/wikimedia/mediawiki-extensions-Cargo/commits?author=fz-29 |View at Github: All merged commits in Cargo Extension Project]]
[[https://github.com/wikimedia/mediawiki-extensions-PageForms/commits?author=fz-29 |View at Github: All merged commits in Page Form Extension Project]]
=== Link to all the commits merged/open ===
[[https://gerrit.wikimedia.org/r/#/q/fz-29 |View at Gerrit: All commits]]
= Acknowledgements =
First and foremost, I would like to thank my mentors Yaron Koren(@Yaron_Koren), Nischay Nahata(@Nischayn22) and Tobias Oetterer(@Oetterer) for guiding me, and solving all of my doubts patiently. This project would not have completed without their contribution.
Special thanks to Srishti Sethi(@srishakatux) and the complete Wikimedia Foundation, for all their support.
Last but not least, I would like to thank Google for providing this opportunity to explore the open source software through the "Google Summer of Code" program.