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 Coding period | Week #5 | Drupal

The second phase of the Coding Phase officially kicked off the previous week on June 30th, 16:00, marking the conclusion of the First Evaluation period for Google Summer of Code 2017. On the personal front, I would like to state that I progressed successfully through the evaluations by completing the two designated ports for my project ‘Porting UC Wish list to Drupal 8’ , under the able guidance of my mentor, Naveen Valecha . I have also maintained a detailed info for the work done as part of the first phase evaluations in a previous blogpost . The previous week, based on the mentor’s review of the earlier ports done, I had also fixed the coding standards and made some changes to the code, as suggested by him. Meanwhile, based on a comprehensive analysis for the above mentioned ports, the work done briefly the earlier week can be stated as: 'View wishlist' option visuals in D8: 'Email wishlist' option visuals: As of now, I...

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

With the last week of the second phase of the Google Summer of Code 2017 underway, the seventh week has come to a close. The previous week saw the completion of the third port for the second regime, i.e., porting ‘View/Update wishlist’ . The earlier week I had summarised the implementation for the third port, i.e, porting ‘View/Update wishlist’ functionality. So, the work done the previous week for the implementation of the mentioned third port can be summarised below: The first thing I did was to define an interface my UcWishlist entity type class can implement and that extends the default ContentEntityInterface alongwith EntityOwnerInterface . So inside of the module's src/Entity folder, create a file called UcWishlistInterface.php . Next,  I focused on the crux of defining my own Content Entity class and created a folder inside the src/ directory called Entity , and within it, a file called UcWishlist.php . What we have here is a...

Community Bonding with Drupal | GSoC 2017

As mentioned previously, this year I got selected for GSoC under Drupal for the project ‘Porting UC wish list to Drupal 8’ . This blogpost would concisely pivot around the Community Bonding period with Drupal for GSoC’17, thereby focusing on it’s importance and objectives achieved during this phase. This year, the accepted GSoC proposals/projects were announced on April 3, 21:00 IST. The selected students are entitled to participate in the Community Bonding period till May 29th. The Community Bonding period, essentially, is the time for the selected students to socially engage with the fellow developers & learn extensively about their organisation’s functionalities, in other words, have a comprehensive understanding of an organisation’s codebase, codes of conduct, releases etc, rather than jumping straight into coding. Moreover, during this term students have the opportunity of interacting with their respective mentors, plan correspondingly about their proj...