What did you do this week?
* This week, I started with the task of export. I started by writing the user stories for export the previous week, which was supposed to be covered before the first phase evaluation. This was challenging part, however, I was able to accomplish it and also added some extra features to the export functionality. All the work related to export has been done in this PR.
* Some of the major stories that it tries to cover are described here
* While writing the code for export part, I got to learn a lot about plone methodologies, architecture and how development is done in plone community. I got to go through some of the library codes as well to the core of them.
* Made videos of the export tasks for better understanding and also added in the issues raised on the github repository
* Organized github project boards (clearly describing the status of the work as Done, Ongoing and TODO) which will help in a better communication and efficient workflow
* Had a weekly meeting with one of my mentor. Minutes of the meeting are added here. In the same meeting, we got to know more about each others countries, culture, languages as well. This meeting also lead to adding some more features in the current export part which will make up for a better user experience. All those (apart from the one that needs discussion from mentors) have been done and added in the same PR.
* Raised an issue for another feature that was originally discussed in the UX roadmap, which will allow the admin to save his import/export profiles for later usage. This will be covered in the later work.
What is coming up next week?
* Rewrite/remove the tests for the old export feature.
* Cover the tests for the new export feature
* Write up docs covering what all has been done in the first evaluation, majorly related to the new export functionality (This is a work in progress)
* The current export feature doesn't support exporting the data related to acl_users, themes and settings. A discussion from mentor is required on this and it will be added along with the current implementation
* Getting the PR for export merged in ASAP will mark the completion of a major milestone.
* Working on the save/load profile functionality
* Supporting the current export functionality for large files uploads
* Better error handling in the existing code (whenever required)
* Adding support for large file handling
Did you get stuck anywhere?
Yes, infact I got stuck at a lot of places this week. Some of the places where I got stuck are
* Understanding the plone apps architecture
* Understanding the workflow of plone and how the backend and the frontend is synced up while developing plone apps. Plone architecture differs a lot than the other commonly used web development frameworks, hence it was not very intuitive to get the feel of how things are working under the hood in the initial stage. However, now after implementing the export functionality, and having gone through couple of plone apps, this problem is now resolved.
* The plan to accomplish the export functionality was to use a query widget which will allow users to perform queries efficiently and will solve a lot of very specific use cases as well. However, I later realized that the Query widget can't be directly used to get the results of the query performed, and we only get a json object which contains the actual query performed. Hence, initial thought was to implement each of the functionality on my own, which have taken a lot of time as well as resulted in a comparatively very big and error prone code. However, on further digging up and discussing with an another member of plone organization, I could figure out a way how we can get this thing done in an efficient and shorter way. Though it took some more time to understand, still I was able to do it and successfully incorporate this feature in the current export part.
* Another place where I was stuck while implementing the export functionality was to have a schema for forms which will be dynamically generated. However, I found some links which helped me accomplish this task later.
Lucikly, all the places where I was stuck, I could figure out the solutions for all the things, and the places where I couldn't, my mentors helped in proceeding forward, as the result of which I could accomplish the export functionality before first phase's evaluation.