Overview
- Title
- implement an advanced item list / managment view
- Duration
- 180
- Difficulty
- Hard
- Type
- Code,User Interface
- Tags
- python,html,css,jquery,jinja2,mercurial
- Mentors
- thomaswaldmann,rb_proj,ronny_pfannschmidt,xoraxax,diofeher
- Count
- -1
Description
Abstract
moin2 currently only has an extremely simple. "global index" view - it just lists item names and mimetypes as a flat list with links.
This task is about an advanced view, that offers much more data and flexibility. It should be also be usable as a frontend for actions that need a selection of items as input.
Details
You have to implement a new "global index" view, featuring:
- tabular data with columns for latest revision metadata like
- item name
- item revision
- item mimetype
- item size
- modification time
- editor name / ip / hostname
- columns have to be sortable
- columns have to be hideable
- pagination
- selection of 1 or multiple items by checkboxes
- selection of all items by one checkbox
- submit buttons for posting of the form data to misc. actions
- e.g. for deleting them, moving them, copying them, exporting them, ... (implementing this is not part of your task)
- you have to demo this by implementing one "test" submit button, that simply posts data to a test view that displays all selected item names / revisions
- i18n support for column heads and other user interface texts
You maybe don't like to reinvent the wheel, but save some time. Have a look there: http://www.datatables.net/ - they implemented most of what you need already.
Maybe rather do not try to implement this all "from scratch", you likely would run out of time.
You could also use another free software tool that is appropriate, of course.
Deliverables: changesets
Optional:
- if you have time left, add filtering for columns by text or regex
Benefits
Your work will be an essential part of moin2 and make locating and managing items much more comfortable.
Skill Requirements
See tags. You need to be good with python, html (jinja2 templates), css, jquery. You need to work with mercurial DVCS.
Links
Note: unless otherwise noted, tasks usually refer to moin2 (http://moinmo.in/MoinMoin2.0)!
http://hg.moinmo.in/moin/2.0-dev repository of moin2
http://moimo.in/MoinMoinChat - please join us on IRC #moin-dev