Skip to main content

GSoC’17 Coding period | Week #6 | UC-Wishlist





With the conclusion of the sixth week of Google Summer of Code 2017, the Coding regime is nearly halfway through the second phase. The previous week involved some basic albeit important conceptualizations, which have been of immense help and have provided noteworthy assistance for understanding the port functionality.
As mentioned earlier, the previous week I had summarised the implementation for the third port concerning the second phase, i.e, porting ‘View/Update wishlist’ functionality. Concerning the above port the following tasks had to be considered:
  • Creating the WishlistViewForm class by implementing the​ Form &​ Module API​ s, where the forms are created using ​  $form=\Drupal::formBuilder()->getForm( )​.
  • Providing an interface defining a wish list entity by creating the class UcWishlistInterface by extending ContentEntityInterface and EntityOwnerInterface.
  • The callback: uc_wishlist_display($wid, $mode) is utilised under the function uc_wishlist_view_form to check for required permissions and private checkbox for lists:
    • Set $wid (wish list id) if it is null.
    • Check the if user is wish list owner and provide right to edit.
    • If the user is not the owner and there are no products, then show the link to search. 
    • Display the required list if user is the owner or list is not private.
  • Creating the UcWishlist.php file in order to define user entity class.
As of now, I’ve completed a significant portion of porting the the first functionality, i.e., ‘Viewing/Updating user wish list’. Moreover, the ‘Update’ functionality is integrated through the WishlistViewForm config form/class to modify any specific wish list, so that on accessing the ‘Wish list’ link the user wish list is displayed with the added products and gets the products post data and iterate them to update one by one in a specific wish list and update the information for this product in the wish list.

Regarding the fourth port, i.e., porting ‘Search Wishlist’ functionality, based on a comprehensive analysis of the same, the following work had been done the earlier week:
                   ->condition('u.name','%'.$keywords.'%','LIKE')
                   ->condition('w.title','%'.$keywords.'%','LIKE')
                   ->condition('w.address','%'.$keywords.'%',
                   'LIKE'))​​ :
                   makes three queries and returns a new DatabaseCondition.

The code for the current status of the port can be found here.

Winding up, these were the objectives and concepts learned during the third 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...