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 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...