Skip to main content

GSoC’17 Coding period | Week #10 | Uc Wishlist




With the conclusion of the tenth week of Google Summer of Code 2017, the coding regime is almost halfway through the third phase. Meanwhile, last week saw a stringent buildup on the concept for the remaining ports, which would aid in its gradual completion. I have maintained a detailed structure of the code for the port which can be accessed here.

Focusing on the present scenario, the implementation of the 5th port ‘Email wishlist to users’ has almost reached completion. Additionally, the implementation of the last port ‘Add user wish list settings’ is underway, with a significant portion of the port to be accomplished within the coming week. Therefore, based on a comprehensive evaluation of the current status of the module, the work done previous week can be summarised as:
  • Option to email wishlist to others:

    • This feature would enable users or wish list owners to share any wish list with other users or potential customers by emailing it to the respective user.
    • Completed the WishlistEmailForm.php form contained in src/Form using the Form API involving the buildForm, validateForm and submitForm handlers for the wish list email.
    • Usage of the Database API for the dynamic construction of queries and storing the database within the DBQuery.php file in src/Database.
    • Converted D7 Hook functions to D8 APIs and provided menu-defined local links such as the email wishlist tab Routes, thereby linking the user wishlist to the local tabs routed through /user/%user/email-wishlist. Email address of an user is verified through the Data Common API.

  • Implemented hook_rules_condition_info:

    • This hook is implemented in order to add a new Rules condition to the existing module. Created the file uc_wishlist.rules.inc, which gets automatically included when the hook is invoked.
    • Here, Rules fires a function uc_wishlist_product_wishlist, with the related parameters provided. This function checks the required query whether the order has a wishlist product selected and returns either TRUE or FALSE.
Finally for the Views implementation to work as planned, it would require the creation of the the Views Filter Plugin for the integration of the wishlists with Views. Further work would require the implementation of the ‘Add user wish list settings’ routed through /user/%user/wishlist redirected through the Wishlist local menu tab.

As of now, the port implementation for ‘Email wishlist to other users’ is almost done. With the addition of the rules and views hook implementations the wishlist product that can be reviewed systematically. Also, I need to carry out hook_mail implementation and link the Email-wishlist form to a controller/local menu tabs for the port to work completely. After the successful completion of the ports, I would move on to draft the documentation and create the related testing framework for the same.

Overall, the experience so far has been amazing and it’s great to advance onto the final regime of GSoC’17. Winding up, these were the objectives and concepts learned during the eighth week of coding phase in GSoC’17. Hope to learn many more new concepts in the coming weeks for the successful completion of the port.

Cheers!


Comments

Popular posts from this blog

GSoC'17 | Drupal

This year I had the utmost opportunity of getting selected for the prestigious Google Summer of Code 2017, as a part of Drupal, the open source organisation to which I contribute. Drupal, is a free and open source content-management framework written in PHP and distributed under the GNU General Public License, provides a back-end framework for at least 2.2% of all Web sites worldwide – ranging from personal blogs to corporate, political, and government sites. Systems also use Drupal for knowledge management and for business collaboration. The Google Summer of Code, often abbreviated to GSoC, is an international annual program, first held from May to August 2005, in which Google awards stipends, which depends on place of university of the student, to all students who successfully complete a requested free and open-source software coding project during the summer. The program is open to university students aged 18 or over. Students contact the mentor organization...

GSoC’17 Coding period | Week #8 | UC Wishlist

The eighth week of Google Summer of Code 2017 has come to a close, bringing forth the onset of the Second Evaluation Period. Presently, I've been working on porting the 'Uc Wishlist' module to Drupal 8, under the guidance of my mentor, Naveen Valecha . The conceptualization and understanding developed during the first phase of coding have been of immense help and has provided notable assistance for the completion of the assigned ports. This month, concerning this week in particular saw the completion of a significant amount of work concerning the ports assigned for the Second phase of the coding regime. The work done this week can be briefly described as follows: Fixed the 'Add to wishlist/Remove from wishlist' submit handler for the second port. Previously, on clicking on the add to wishlist button, the screen showed an error page, and the product couldn't get registered. However, the error has been fixed and products can now be adde...

GSoC’17 Coding period | Week #3 | Drupal

With the conclusion of the third week of Google Summer of Code 2017, the initial phase of the coding period is coming to a closure. The conceptualization developed during the previous weeks have been of immense help, and has been of notable assistance for the completion of the ports for the first phase. The previous week, as I had stated in my earlier blogpost , I had to port the following sub-modules regarding the UC Wish list framework: As I had mentioned in the previous blogpost , till week 2 I had almost completed the first port by configuring the administrator wish list settings and completing a substantial portion of managing user wish lists. With the conclusion of week 3, I have completed the port of the administrator wish list settings. Moreover, I have also included the ‘Add to wish list’ feature as part of the second port. Thereby I would briefly like to state the steps taken to port the above functionalities: Manage user wish lists: Implemen...