The Roundup Issue Tracker's search page is used to select a set of items (usually issues). These are displayed in a table format by default. To better support agile methods, this multi-phase project will create a kanban style display rather than a table format. The kanban will be interactive allowing the user to change the card state by dragging and dropping between columns.
The implementation will be written in HTML, CSS, the TAL templating language (also jinja2 if time allows) and Python.
Details
Initially only a Kanban display and a change to the search page to select the kanban format will be produced. For example searching for issues grouped by status could look like:
The card format will be predefined (header with collapse/expand button, issue number, background color indicates priority; issue title; person assigned w/ icon). This should hopefully only take a couple of sprints to produce.
Another phase will include writing vanilla javascript to allow dragging of Kanban cards to a new column and updating the backend using REST so it reflects the state on the board. Also cards can be dragged within a column (athough not persisted). Using a third party library for drag/drop is an option.
Yet another phase will be developing a method for an admin to create new card formats and allow the user to select the card format in the Kanban.
Roundup is meant to be customized by the owner. As a result we should not assume that the owner has a web development environment. So all core enhancements to Roundup should be relatively easy (add a few lines to an HTML template and drop in a JavaScript file or additional HTML templates) to deploy and not require third party libraries/frameworks.
Also this requires that the REST interface be enabled for the user. The web component should check for this and alert the user if they are not authorized to use the REST interface. It should alert that user that the Kanban is read only in this case.
Skills/Technologies Required/Excluded
- HTML - is used to build the page.
- CSS - is used to style the page.
- Python - used on the back end and in the templating system for the HTML.
- TAL - template attribute language is also used.
- vanilla JavaScript
- REST
- internationalization