Sunday, September 8, 2013

Twelfth week report - Unit testing and improvements

By the start of the last week most of the scheduled developments were over as planned initially. What I planned for the last week was adding new unit tests for the code written in the second half of GSoC. With the experience of writing unit tests from the first half adding new unit tests were not very hard and I submitted a pull request with new unit tests.

While adding a new table level tab for table specific privileges I realized a limitation in the was I implemented configurable menus. In the system table that stores the allowed menus I had a column for each menu to indicate whether that tab is allowed. However this resulted in the need to change table structure whenever a new tab is added to phpMyAdmin. Hence I went on to change the table structure and submitted a pull request for that too.

With the last weeks work my planned tasks for GSoC come to an end. I've asked my mentor whether there is anything else I need to do before the deadline and would attend to any work he might pointed out. All in all it has been a very good experience and I learned a lot.  :)

Sunday, September 1, 2013

Eleventh week report - Navigation panel improvements and table specific privileges

First half of the eleventh week of GSoC was spent on followup work on the 'Navigation panel and current table' feature request. By the time I submitted the pull request for the above feature request another developer has implemented a feature that would open the corresponding database in the navigation panel when a database is selected. I previously had this implemented as a part of the pull request and I had to merge the two implementations. Further I was asked to port the merged changes to the QA4 branch so it would be released sooner than the other features.

With these changes
1. Database node is opened and highlighted when the user goes to a database. Database groups created based on the defined separator is handled.
2. Table/view is highlighted in the navigation when the user goes to a table/view. Table and view containers are handled. Table groups created base on the defined separator is also handled.

Second half of the week was spent on creating a privileges tab for table level. This feature is in lieu of 'reCAPTCHA support on login panel' feature which has already been implemented. Borrowing the idea form database level privilege tab, this tab displays all the granted privileges related the current table. While implementing I was able to reuse some of the code between database level and new table level privileges tabs.

During the next week I plan to add documentation and write unit tests for the features implemented in the second half of GSoC.