Page MenuHomePhabricator

GSoC 2021 Proposal : Add autocompletion to Page Forms spreadsheet display
Closed, ResolvedPublic

Description

Profile Information


Name: Yash Varshney
Email-ID: varshneyyash60@gmail.com
Institute: Indian Institute of Technology Ropar
Location: Rupnagar, Punjab
Time Zone : UTC +05:30
Typical Working Hours :[4pm-8pm],[10pm-1am]
Github Profile: https://github.com/iitrpr-yashvarshney

Synopsis


Title

Add autocompletion to Page Forms spreadsheet display. Link to the google doc of draft GSoC project proposal is this

Spreadsheet-style editing display

The Page Forms extension provides a spreadsheet-style editing display at two places:

  • At Special Pages: MultiPageEdit:

At this page one can edit the fields of the existing page or even add or delete any page.

  • At Regular forms with the form definition "|multiple|display=spreadsheet"

This is used in case we have multiple instances of templates, we can add a new instance of a template by adding a new row in the spreadsheet(with different columns as the fields of that template).

Features and Implementation

Currently, the spreadsheet-style display uses the jExcel JavaScript library which provides a number of helpful input types (dropdown, date, text area, etc.), but it does not by default allow for auto-completion using an arbitrary list of values. This will be very helpful to add, the same way different input types(apart from spreadsheet-style display) support the autocompletion.

The following ways can be used to enable that autocompletion:
-Using the Select2 JS library.
-Using WikiMedia’s own OOUI library.
-Using a custom solution like this one, but this will be using jQuery UI which is deprecated among MediaWiki.
Going with OOUI is the right way for this project as it has some interface advantages over Select2 plus it'll help to maintain consistency among the MediaWiki. The first task is to upgrade the jExcel library to Jspreadsheet which will give some new styles to the Spreadsheet and then modifying the default Jspreadsheet editor to use OOUI's TextInputWidget.

This autocomplete solution should ideally be supporting all the autocompletion possibilities available in standard Page Forms forms:
-Autocompletion on all pages that match a specific category, Cargo field, SMW property or SMW concept.
-Support for the $wgPageFormsAutocompleteOnAllChars setting.
-Autocompletion on values retrieved from an external data source, using "values from external data", and the existing values saved for the field.
-Autocompletion where one field's values depend on what was chosen for a previous field, using "values dependent on".

Possible Mentors: @Yaron_Koren @Sahajsk

Have you contacted your mentors already?
Yes, I've been in contact with my mentors.

Timeline


PeriodAssignments
Apr 16-Jun 1Community Bonding Period
- Understand more about the code base by fixing other bugs and issues in Page Forms.
-Get more active on Phabricator and Gerrit.
-Interact more with mentors, other community members and other participants and know more about their projects
Jun 2-July 11Task 1
Completing Autocomplete for pages having category Cargo field and support for $wgPageFormsAutocompleteOnAllChars setting.
Currently jExcel library is used for autocompletion, for auto-completion using an arbitrary list of values we will use MediaWiki’s own OOUI library.
July 12- July 16Phase 1 Evaluations
Mentors and students submit their evaluations of one another.
July 17-Aug10Task 2
Completing Autocomplete for pages having category SMW property or SMW concept, will be using MediaWiki’s own OOUI library for completing the autocompletion.
Aug 11-Aug 16Buffer time
Fix the issues that are left and make sure the documentation of the code should be enough and thoroughly covering each aspect.
Aug 16-Aug 23Submit Code
Students submit code for final evaluations.
Aug 23-Aug 30Final Evaulations
Mentors Submit Final Evaluations.
Aug 31Results announced

Summary of the Project


  • Upgrading the jExcel library to Jspreadsheet: Patch
  • Adding the autocompletion inside spreadsheets: Patch
  • Reports summarizing the project: Link

Participation


I’ll inform my mentors about my weekly progress and in case I get struck I’ll contact them through mail. I’ll update the documentation whenever I’ll make some changes to the code.

About Me


I am a first year student pursuing a Bachelor of Technology in Electrical Engineering from Indian Institute of Technology, Ropar. Although I belong to a circuital branch my interest belongs fully to programming. I am a Data Science enthusiast and I also love solving competitive programming puzzles involving different data structures and algorithms.
I participated in Google Code-in 2019, where I got to know about Wikimedia and the basics of Gerrit code review. Then I started looking more about Wikimedia, how it’s helping millions of people. Contributing to such a project which would affect millions of people would be a great opportunity to learn.
During the project I’ll be having my laboratory classes from April 26 to July 7. I’ll be having mid semester examination in the first week of June and end semester examination in the first week of July. The lab classes will be online due to increasing covid cases in India and I’ll be attending those from my home.
Currently my focus is towards GSoC only and I’m giving my full time to GSoC only.

Past Experience


My GitHub link is this. One of my major projects is Amazon Alexa app(Index Price Application) which is hosted through python. This basically takes the voice input from user about the index name(e.g. Nifty fifty and Nifty five hundred) and tells him the last traded price of that index using an API. The link to the application is this. I also did projects related to automation using selenium library. I also have good knowledge about JavaScript and PHP.

Previous Contributions to WikiMedia:


T275406 : Remove "namespace" parameter for "combobox", "tokens" input types.
T208176,: Add "intro" parameter to "for template".

Event Timeline

Hey @Yashvarhsney

Thanks for showing your interest to participate in Google Summer of Code with Wikimedia Foundation! Please make sure to upload a copy of your proposal on Google's program site as well in whatever format it's expected of you, include in it this public proposal of Phabricator before the deadline i.e April 13th. Good luck :)

Hey @Yashvarhsney

Thanks for showing your interest to participate in Google Summer of Code with Wikimedia Foundation! Please make sure to upload a copy of your proposal on Google's program site as well in whatever format it's expected of you, include in it this public proposal of Phabricator before the deadline i.e April 13th. Good luck :)

Hi @Gopavasanth

I've followed all the instructions provided by Google's program site, and for the task, I've uploaded the link to the google doc of the proposal. Is that sufficient for the task, or should I provide some other documents too?

Thank you.

Hey @Yashvarhsney sounds like you completed all the steps for the application. Thanks!

GSoC application deadline has passed. If you have submitted a proposal on the GSoC program website, please visit https://phabricator.wikimedia.org/project/view/5104/ and then drag your own proposal from the "Backlog" to the "Proposals Submitted" column on the Phabricator workboard. You can continue making changes to this ticket on Phabricator and have discussions with mentors and community members about the project. But, remember that the decision will not be based on the work you did after but during and before the application period. Note: If you have not contacted your mentor(s) before the deadline and have not contributed a code patch before the application deadline, you are unfortunately not eligible. Thank you!

Change 693574 had a related patch set uploaded (by Yashvarshney02; author: Yashvarshney02):

[mediawiki/extensions/PageForms@master] Add Autocompletion to Spreadsheet style display

https://gerrit.wikimedia.org/r/693574

The patch for upgrading jExcel to Jspreadsheet can be found here

Change 693574 merged by jenkins-bot:

[mediawiki/extensions/PageForms@master] Add Autocompletion to Spreadsheet style display

https://gerrit.wikimedia.org/r/693574

Is everything in this project task planned for Google-Summer-of-Code (2021) completed? If yes, please consider closing this task as resolved. If bits and pieces are remaining, you could consider creating a new task and moving them there.