[Toaster] [RFC] Tables rework - michaelw/toaster-tables-poc
Michael Wood
michael.g.wood at intel.com
Thu Mar 26 11:21:39 PDT 2015
Here is the current WIP of the proof of concept of the Tables widget for
toaster
http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=michaelw/toaster-tables-poc
( http://tinyurl.com/op63pgj )
I've tried to prefix/postfix 'poc' to make it easier to identify which
are for the proof of concept
Brief overview of the files/changes:
----------------------
poc_view.py:
Table(View):
- Handles the HTTP requests to get the table data
- Adds some basic caching (future - this can be tied into the
request but for now is just global)
ToasterTable(object):
- Adds a base class for common table functionality
- A lot of this is bringing in all the parts we already have in
views.py and standardising them in a single class
- In many tables we have what I've named "static data" this is
where we have a column that contains html data, for example a button.
- Outputs the data for the page requested as a JSON document
RecipeTable(ToasterTable):
- Example of a table which has static data
LayersTable(ToasterTable):
- Example of a simple table
----------------------
tables.js:
- This consumes the table data
- Adds handlers for all the table chrome buttons
- Implements the add/remove columns
- Implements paging
----------------------
table-poc.html:
- Template that just contains the html for the table layout (i.e.
search bar, table, buttons etc)
- can be considered the same as conflating the "basetable_top.html"
+ "basetable_bottom.html" templates
----------------------
generic-table-page-poc.html:
- This is a normal table page in toaster with navigation, zone
alert and which includes the table-poc.html template the context
variable table_name is passed into this template to select which table
to display
----------------------
two-tables-poc.html:
- Exactly the same as generic-table-page-poc.html (above) but has
two tables in it.
----------------------
changes to urls.py:
- Add the poc-table this calls into to Table(View) to handle the
requests made from the ajax calls (could be renamed xhr_table for
consistency)
- Add urls for the test pages: /layers-poc/ and /recipes-poc/ and
/two-tables-poc/ note that they don't need their own views defined
because the only thing changing is the table_name and that's passed in.
----------------------
Notes:
The whole lot is 642 lines which means the maintenance burden shouldn't
be too high
There's a fairly easy path to switching our existing tables - one at a
time if needed
There are bugs and features missing - This is just the proof of concept!
Thanks,
Michael
More information about the toaster
mailing list