KANBANARA CHANGE LOG
====================

===============
= VERSION 1.2 =
===============

Mon Apr 30 21:10:34 2018 +0100 - Removed the loopback facility in favour of setting socket_host directly to '127.0.0.1'
Mon Apr 30 18:53:12 2018 +0100 - General tidying up prior to the release of version 1.2
Fri Apr 27 20:10:29 2018 +0100 - Introduced a new Meetings submenu on the main menu bar.
Fri Apr 27 08:37:58 2018 +0100 - Corrected the next action date when creating a routine card.
Wed Apr 25 08:52:39 2018 +0100 - Changed 'My Details' page to 'My Name'.
Tue Apr 24 20:56:22 2018 +0100 - Added a new User Menu in top right incorporating the My Details and Logoff menu options
Sun Apr 22 21:12:23 2018 +0100 - Added z-index: 1 to table.cardrotated in CSS to ensure layering is reset to ensure pop up menu appears correctly
Sat Apr 21 18:20:47 2018 +0100 - Tidied up projects.py file.
Fri Apr 20 08:38:24 2018 +0100 - Tidied up the Add Project page
Fri Apr 20 08:06:54 2018 +0100 - Incorporated nickname into the My Details page and the Welcome message.
Thu Apr 19 08:51:29 2018 +0100 - Added a nickname field to the registration page.
Thu Apr 19 08:26:31 2018 +0100 - Documented the resolution changes.
Thu Apr 19 07:56:07 2018 +0100 - Upgraded to using Font-Awesome 5.0.10
Wed Apr 18 08:45:13 2018 +0100 - Added a has_project_manager_role() function.
Wed Apr 18 08:30:12 2018 +0100 - Tidied up all the new Update Project pages and ensured a non-project manager can't update any aspect of a project.
Tue Apr 17 20:33:06 2018 +0100 - Updated the documentation with regard to the splitting up of the Update Project tabs into separate pages.
Tue Apr 17 19:00:33 2018 +0100 - Extracted the Base Attributes tab out of the Update Project page and made it a page in its own right.
Mon Apr 16 08:28:17 2018 +0100 - Extracted the Global WIP Limits tab out of the Update Project page and made it a page in its own right
Mon Apr 16 07:43:14 2018 +0100 - Extracted the Workflow tab out of the Update Project page and made it a page in its own right.
Thu Apr 12 18:49:15 2018 +0100 - Extracted the Releases and Iterations tab out of the Update Project page and made it a page in its own right.
Wed Apr 11 22:09:26 2018 +0100 - Added new role of Project Leader. Made self.roles into a constant.
Wed Apr 11 21:53:57 2018 +0100 - Extracted the Team Members and Custom States tabs out of Project Update page, making them a page in their own right.
Tue Apr 10 18:00:25 2018 +0100 - Extracted the Classes Of Service, Timeline and Email tabs out of Project Update page, making them a page in their own right.
Mon Apr 09 08:57:51 2018 +0100 - A card changed in the last 24 hours will now be shown slightly rotated on the kanban board to indicate the same.
Sun Apr 08 10:20:46 2018 +0100 - Added advice to documentation:
Fri Apr 06 19:14:41 2018 +0100 - Added housekeeping code to remove the legacy <state>entrycriteria and <state>exitcriteria attributes from each project document as now superseded by the entrycriteria ans exitcriteria attributes.
Fri Apr 06 18:43:33 2018 +0100 - Added entry / exit criteria tooltips on kanban board
Thu Apr 05 21:36:46 2018 +0100 - Changed Kanbanara.__init__(self) to super().__init__()
Thu Apr 05 09:12:28 2018 +0100 - Extracted Entry / Exit Criteria out of the Project Update tab and made it a page in its own right.
Thu Apr 05 07:24:54 2018 +0100 - Extracted synchronisation out of the Project Update tab and made it a page in its own right.
Wed Apr 04 21:57:16 2018 +0100 - Extracted categories and custom attributes out of the Project Update tab and made them pages in their own right.
Wed Apr 04 18:22:21 2018 +0100 - Extracted announcements and subteams out of the Project Update tab and made them pages in their own right.
Sun Apr 01 13:09:05 2018 +0100 - Reimplemented a card's artifacts attribute using the JQuery Select2 library.
Fri Mar 30 08:07:31 2018 +0100 - Added a 'My Details' page and corresponding 'My Details' option on the Settings menu to allow a logged on user to update their first and/or last name.
Thu Mar 29 10:18:48 2018 +0100 - Reimplemented a card's tags attribute as a multiple select box using the JQuery Select2 library
Wed Mar 28 22:14:18 2018 +0100 - Added the same input/textarea changes (e.g. required, :invalid css, regex pattern) to the Contact Us form within Kanbanara itself.
Wed Mar 28 19:59:01 2018 +0100 - Incorporated Select2, the jQuery replacement for select boxes, from https://select2.org/ into the Kanbanara build
Wed Mar 28 18:32:55 2018 +0100 - Updated the website's Contact Us form with 'required' added to input/textarea fields and HTML5 regular expression pattern validation.
Wed Mar 28 09:04:23 2018 +0100 - Adding :required and :invalid css styling to authentication input fields.
Wed Mar 28 08:24:19 2018 +0100 - Tightened the authentication process by changing the username input field to type 'email' and adding a regular expression pattern to all applicable input fields (username, password, firstname, lastname)
Tue Mar 27 08:30:41 2018 +0100 - Tidied up the authenticate.py code and made the buttons interactive.
Fri Mar 23 08:41:36 2018 +0000 - Set True/False defaults for the WIP Limits Apply To settings.
Thu Mar 22 08:54:35 2018 +0000 - Updated the global WIP Limits so that individual card types can be set to apply or not apply.
Tue Mar 20 07:33:31 2018 +0000 - Added [global] section heading into various .ini files so as to be able to use Python's configParser library at some point in the future.
Mon Mar 19 21:15:46 2018 +0000 - Implemented a 'WIP Limits Apply To Blocked' option to force such global WIP limits to apply equally to blocked cards.
Sat Mar 17 23:01:13 2018 +0000 - Documented flight levels.
Fri Mar 16 08:47:31 2018 +0000 - Tidying of the filter_bar() function
Fri Mar 16 08:22:05 2018 +0000 - Added flight levels as documented in Klaus Leopold's book "Practical Kanban".
Tue Mar 13 20:31:13 2018 +0000 - Further work on adding text-to-speech facility on various textarea input fields on add card and update card pages.
Tue Mar 13 08:52:59 2018 +0000 - Added text-to-speech facility to comment attribute on Add Card page.
Sun Mar 11 23:05:06 2018 +0000 - Tidied up the avatar kanban board code
Sun Mar 11 21:26:39 2018 +0000 - Added avatars to creator/owner/coowner/reviewer/coreviewer attributes on customisable kanban board
Sun Mar 11 16:07:47 2018 +0000 - Better error handling should MongoDB connection fail.
Sun Mar 11 09:49:02 2018 +0000 - Changed check on dictionary element by using .get() instead.
Sat Mar 10 10:53:26 2018 +0000 - Added a requirements.txt file for easier pip python library installations.

===============
= VERSION 1.1 =
===============

Sun Mar 04 09:24:01 2018 +0000 - Updating the web site's Downloads page
Sat Mar 03 17:46:11 2018 +0000 - Bypassed the convert_time_to_display_format() function by calling str(<value>.date()) directly.
Fri Mar 02 21:00:50 2018 +0000 - Corrected the convert_time_to_display_format() function when extracting just the date from a datetime object
Thu Mar 01 21:35:00 2018 +0000 - Some tidying up of the Authenticate component
Wed Feb 28 09:13:54 2018 +0000 - Added a Children option to the Customisable Kanban Board
Wed Feb 28 08:19:13 2018 +0000 - Corrected an issue on the Update Team Member page where the project document could not be found when switching projects
Wed Feb 28 08:17:14 2018 +0000 - Centered the buttons on the Personal WIP Page
Wed Feb 28 08:15:50 2018 +0000 - Corrected an issue where the dates in the iteration document were being treated as integers rather than datetime
Tue Feb 27 18:25:15 2018 +0000 - Changed the deprecated pymongo remove() function to delete_one()
Tue Feb 27 18:06:45 2018 +0000 - Changed the deprecated pymongo insert() function to insert_one()
Tue Feb 27 09:03:24 2018 +0000 - Corrected bug in Advanced Search which prevented searching on attributes of type list
Tue Feb 27 08:24:51 2018 +0000 - Corrected the pymongo calls from find().count() to count()
Tue Feb 27 07:49:47 2018 +0000 - Corrected the pymongo calls from find().distinct() to distinct()
Mon Feb 26 21:34:25 2018 +0000 - Corrected urls (e.g. /kanban/<function>) where pointing to function in wrong component.
Mon Feb 26 08:24:17 2018 +0000 - Implemented a brand new Customisable Kanban Board.
Sun Feb 25 19:12:43 2018 +0000 - Changed /kanban/ to /projects/ as functions are now in this component
Sat Feb 17 11:08:12 2018 +0000 - session_document now passed into assemble_kanban_card( and then into assemble_*_kanban_card( functions to speed up the redrawing of each kanban board
Thu Feb 15 08:44:12 2018 +0000 - Added a default error page and general tidying up of code
Sat Feb 10 11:13:10 2018 +0000 - Improvements to the way the linting component ascertains the path to pylint
Sat Feb 10 10:44:22 2018 +0000 - Improved the linting function by excluding __init__.py files and informing the end-user, via the command line, when a python script is actually being linted.
Wed Feb 07 19:02:37 2018 +0000 - Speeded up display of kanban board by doing the following:
Wed Feb 07 08:28:50 2018 +0000 - Speeded up display of kanban board by passing member_document into displayable_priority() and displayable_priorities() to save them having to call cookie_handling()
Wed Feb 07 08:04:21 2018 +0000 - Speeded up display of kanban board by passing member_document into column_required() to save it having to call cookie_handling()
Wed Feb 07 07:46:27 2018 +0000 - Speeded up displaying of kanban board by passing project into get_associated_state_information() to save it having to call cookie_handling() and getting member_document
Tue Feb 06 18:49:03 2018 +0000 - Passing member_document into assemble_kanban_card() to speed up displaying kanban board by not having to call cookie_handling()
Tue Feb 06 12:58:02 2018 +0000 - Improved the speed of displaying the kanban board by passing session_id, member_document, etc. down into sub-functions thereby removing unnecessary calls to cookie_handling().
Sun Feb 04 12:18:14 2018 +0000 - Updated further copyright messages.
Sun Feb 04 07:46:04 2018 +0000 - Updated the copyright messages. Moved version to 1.1
Wed Jan 31 07:36:01 2018 +0000 - Fix bug in add task or add substory card menu option where one of the date attributes (nextaction, deadline, startby) was set, resulting in the datetime object being mangled through passing through the url line. Such dates are now converted to strings of the form '####-##-##' before being placed in url line.
Tue Jan 30 22:41:35 2018 +0000 - Changed '->' between parent and card title to a circle icon.
Mon Jan 29 21:20:03 2018 +0000 - Tidying up of python code
Sun Jan 28 22:43:08 2018 +0000 - Made title of each card a little bolder
Sun Jan 28 20:49:25 2018 +0000 - Corrected a font-style: bold to be font-weight
Sun Jan 28 19:17:47 2018 +0000 - Located better banana skin image
Sun Jan 28 01:45:54 2018 +0000 - Enhancements to the Similars kanban board
Sat Jan 27 22:21:26 2018 +0000 - Turned the timedelta_* variables into CONSTANTs
Sat Jan 13 21:28:09 2018 +0000 - Added a toggle fullscreen facility
Fri Jan 12 22:44:46 2018 +0000 - Corrected an error where a date from blockedhistory was being converted to an integer when it should have stayed of type datetime
Fri Jan 12 22:42:52 2018 +0000 - Tidied up the unblock_card() function
Fri Jan 12 22:05:54 2018 +0000 - Updated the documentation with regard to a card's 'After' attribute and the lack of a 'Blocked By' attribute
Fri Jan 12 18:05:56 2018 +0000 - Added an initial implementation of a future REST API as documented at http://docs.cherrypy.org/en/latest/tutorials.html#tutorial-7-give-us-a-rest
Fri Jan 12 07:33:32 2018 +0000 - Rebuilt html and epub documentation due to issue with Windows path separators in the gettingstarted.rst file
Thu Jan 04 18:28:11 2018 +0000 - Reimplemented the website's slideshow and updated a few of the application's screenshots
Wed Jan 03 22:23:35 2018 +0000 - Added target="_blank" to all <a href="..."> tags that linked directly to the SourceForge site so as to cause such site to open in a new tab
Wed Jan 03 20:25:52 2018 +0000 - Changed '.find_one' to '.find' as failing to return a project document caused a subsequent error during the creation of a new project
Wed Jan 03 19:07:19 2018 +0000 - Amalgamated adjacent lines where each is doing a content.append

===============
= VERSION 1.0 =
===============

Fri Dec 29 22:29:45 2017 +0000 - Added '.hg' folder as exception to prevent it from being included in kanbanara_bleedingedge.zip
Fri Dec 29 20:48:19 2017 +0000 - Updated current state of Kanbanara Software Foundation
Fri Dec 29 18:25:59 2017 +0000 - Now handles ModuleNotFoundError exception should a component's __init__.py file be missing.
Fri Dec 29 13:26:34 2017 +0000 - Added a __init__.py file to each component to identify it as a python package
Wed Dec 20 01:58:48 2017 +0000 - Initial commit
2017-04-28 - Finished altering all dates from integer epoch values to python/mongoDB datetime objects [Rebecca Shalfield]
2017-03    - Split python source code between sixteen CherryPy components each containing a small python file [Rebecca Shalfield]
2017-02-14 - Added new metastates between "accepted" and "closed" - "completed" [Rebecca Shalfield]
2017-02-12 - Split existing metastates - "testing" and "accepted" - into "unittesting", "unittestingaccepted", "integrationtesting", "integrationtestingaccepted", "systemtesting", "systemtestingaccepted", "acceptancetesting" and "acceptancetestingaccepted" [Rebecca Shalfield]
2017-02-12 - Added new metastates before "backlog" - "untriaged" and "triaged" [Rebecca Shalfield]
2017-01-26 - Moved giving/taking of focus to a card from the session to the card itself, thereby allowing multiple cards to be in focus and to allow project managers to see what cards are currently in focus by their team [Rebecca Shalfield]
2017-01    - Moved to Python 3.6 [Rebecca Shalfield]
2016-11    - Ghost cards implemented [Rebecca Shalfield]
2016-11-12 - Purchased Henrik Kniberg's "Kanban and Scrum - making the most of both" [Rebecca Shalfield]
2016-09-05 - Purchased David Sale's "Testing Python: Applying Unit Testing, TDD, BDD and Acceptance Testing" [Rebecca Shalfield]
2016       - Dynamic workflow implemented [Rebecca Shalfield]
2015-12    - Registered kanbanara.com domain name [Rebecca Shalfield]
2015-12-20 - Purchased Ajay Reddy's "The ScrumBan [R]Evolution" [Rebecca Shalfield]
2015-07-07 - Purchased Eric Brechner's "Agile Project Management with Kanban" [Rebecca Shalfield]
2015-07-27 - Purchased Christopher Davis' "Agile Metrics in Action" [Rebecca Shalfield]
2015       - Source code migrated from Python 2.x to Python 3.x [Rebecca Shalfield]
2014/2015  - Projilica renamed Kanbanara after watching Saturday morning cookery programme and hearing the word 'Carbonara' [Rebecca Shalfield]
2014-11-30 - Purchased Mike Burrows' "Kanban from the Inside" [Rebecca Shalfield]
2014-03-20 - Purchased Marcus Hammarberg's "Kanban in Action" [Rebecca Shalfield]
2014-01    - AJAX support added [Rebecca Shalfield]

===============
= VERSION 0.1 =
===============

2013-02-25 - Projilica 0.1, developed in Python 2.x and CherryPy, internally released, featuring a fixed column/state kanban board and the ability to add, edit and delete cards stored in MongoDB [Rebecca Shalfield]
2012-12-31 - Kanban board template developed in pure HTML during Christmas holidays [Rebecca Shalfield]
2012-12-13 - Purchased David Anderson's "Kanban: Successful Evolutionary Change for Your Technology Business" [Rebecca Shalfield]
2012-10    - Exposed to kanban technology via a short talk by a work colleague [Rebecca Shalfield]