blob: 3bb3fecbb78739537c188284bbab8d224dd95f5d [file] [log] [blame]
#summary Tracks progress for the GSoC 2011 project, GUI Overhaul (Fronted and Administration Interfaces)
<wiki:toc max_depth="3" />
= Introduction =
This page will track progress of the GSoC 2011 project, GUI Overhaul (Fronted and Administration Interfaces).
----
= Details =
The first tasks will be gathering some requirements from Melange administration. We have gathered following requirements from Carol:
* Enhance administration dashboard
* Withdraw/accept students from administration dashboard, even after the students with projects has been announced.
* Make the regular dashboard more usable both in how the list requested and rendered
I also came up with following additional ideas to enhance Melange:
* Adding breadcrumb. See Jacob Nielsen's article on how [http://www.useit.com/alertbox/breadcrumbs.html breadcrumb navigation increasingly useful].
* Adding Cluster Map for program administrator. With this feature, program administrator can see all participants location in a single map or even get information/profile for a participant by clicking at the marker.
* Upload handler for organization's logo. Currently, organizations need to provide a link to theirs logo's url.
----
= Iconic Dashboard Architecture =
Iconic dashboard basically is a chunk of template, or a Django view that will be rendered as a partial HTML. Specifically, the view will be rendered as a collection of links that either nested (link to another block/div in the same page) or linked to another page. Iconic dashboard consists of:
* Django view (app/soc/views/dashboard.py). Classes in this view are not supposed to be instantiated directly, where each class acts as a base class. To implement iconic dashboard at least one derived class must be created.
* Djano template (app/soc/templates/v2/soc/dashboard/*)
Lets say you want a GSoC view named dummy_dashboard (which is in app/soc/modules/gsoc/views/dummy_dashboard.py) implements iconic dashboard. First you need to import the base class of dashboard:
<code language="python">
...
from soc.views.dashboard import Dashboard
from soc.views.dashboard import DashboardUserActions
...
</code>
If the dummy_dashboard needs to render list component (such as in the participant dashboard), then Component class must be imported too.
<code language="python">
...
from soc.views.dashboard import Dashboard
from soc.views.dashboard import DashboardUserActions
...
</code>
Given use cases of GSoC program below on how to alter the dashboard will give you an understanding how the dashboard works.
<code language="python">
...
from soc.views.dashboard import Component
from soc.views.dashboard import Dashboard
from soc.views.dashboard import DashboardUserActions
...
</code>
== Iconic Dashboard Use Case in Admin Dashboard (GSoC) ==
== Iconic Dashboard Use Case in Participant Dashboard (GSoC) ==
----
= Meetings and Agendas =
== May 10, 2011 ==
=== My result reported in this meeting: ===
Not yet
=== Meeting notes, copying from Leo's note: ===
* Set up and run an online GAE instance before Thursday with your "View" from the first week.
* Write a blog post about it (and other work you've done) before next Monday so it can be reviewed before our conference call.
* Create a wiki page on Melange wiki for recording the progress of your project.
* Plan a meeting with your mentor and add notes to your OWN project wiki page.
=== My plan for next week: ===
* I've set a live instance at http://akeda-melange.appspot.com
* Started writing wiki page to track my project's progress
* I'm planning to refactor melange.map.js to be more generic. As Mario has said the current status of melange.map.js functionalities is not supposed to be. It only provides map to organization home page. Other pages, such as profile and read only profile, have their own js files which, basically, have common usage of Google Maps API. The refactored melange.map.js should handle all maps functionalities, including my proposed function for MarkerClusterer.
* Upload and crop features for org logo.
----
== May 16, 2011 ==
=== My result reported in this meeting: ===
* I am working to make melange.map.js more generic, so it can be used by profile page as well, or maybe other pages that need to render maps.
* I am also working to add breadcrumb and highlighted mainmenu in currently visited page
=== Meeting notes: ===
Copying from Lennie's note:
Daniel and Akeda will meet with Carol on Wednesday using Skype to brainstorm about their project.
=== My plan for next week: ===
* Submit my code for breadcrumb functionalities to get any feedback
* Prepare talking with Carols about her needs
----
== May 18, 2011 (Requirement gathering) ==
=== My result reported in this meeting: ===
Not yet
=== Meeting notes: ===
* If we're login as a host and view the dashboard (My Dashboard), we will see the page overloaded by Jqgrid list. Carol wants the list is grouped. Akeda has suggestion to group the list by tabs.
* When students with project announced, there might be a student consider himself ineligible to participate. If Carol rejects that student, there will be available slot to accept another student that already rejected. Carol needs this feature to withdraw / accept student in her dashboard.
* Carol needs the Admin dashboard to be enhanced.
=== My plan for next week: ===
* Create mockups for the Dashbord page with tabs to group the list
* Create mockups for the withdraw/accept students manually after students announced period
* I'm planning to give the mockups by Saturday so everyone can give feedbacks
* I will implement this feature after everyone agree with the mockups.
----
== May 26, 2011 (Requirement gathering) ==
=== My result reported in this meeting: ===
Not yet
=== Meeting notes: ===
* Akeda is working on redesigning dashboard. Lennie reminded him that there are two dashboards that Carol is faced with. One allows administrative functionality like sending out reminder emails while the other represents not only Carol's role as a Organization Admin for GOSPO but also gives more information than the regular dashboards for other users. The focus should be on improving the usability and functionalities that are exposed to Carol in her daily job as Program Administrator.
=== My plan for next week: ===
* Contact Carol and Daniel to discuss the requirements briefly
----
== May 30, 2011 (Requirement gathering) ==
=== My result reported in this meeting: ===
See the notes at Google Wave, https://wave.google.com/wave/waveref/googlewave.com/w+mdcpD6vmC
=== Meeting notes: ===
* Meeting was canceled. Notes recorded in Google Wave at https://wave.google.com/wave/waveref/googlewave.com/w+mdcpD6vmC
=== My plan for next week: ===
* Give updated mockup and if possible with the implementation.
----
== Jun 06, 2011 (Toggleable list) ==
=== My result reported in this meeting: ===
See the notes at Google Wave,
https://wave.google.com/wave/waveref/googlewave.com/w+P8uYzs7_C
=== Meeting notes: ===
* Akeda is working on admin dashboard and regular dashboard's improvement. He will implement toggleable list and ask Mario questions/advice about the JS portion for list. The toggleable list is provided in a mockup at http://demo.gedex.web.id/melange_mockup/my-dashboard-toggleable.html
* Notes recorded in Google Wave at https://wave.google.com/wave/waveref/googlewave.com/w+mdcpD6vmC
=== My plan for next week: ===
* Implement toggleable list and start working on admin dashboard.
----
== Jun 13, 2011 (Toggleable list) ==
=== My result reported in this meeting: ===
I've posted the toggleable list patch to melange-soc-dev. The toggleable list is works by set the context of toggleable and collapse on component based class in app/soc/modules/gsoc/views/dashboard.py. If we set both toggleable and collapse to True, then the list wouldn't requested by the JS, but it updates the list_configurations variable with idx as its key. We still can make the list requested on the first load by ignoring toggleable and collapse context. With this approach, other list such as accecpted_orgs wouldn't affected.
=== Meeting notes: ===
* Not yet
=== My plan for next week: ===
* Not yet
----