This started as a matching branch for the VTP-web-client milestone2 work to support html output. However, several aspects of the low level data model as well as the OO class design were just too busted to not take the plunge and address some of the issues. So, this is has become rather large.
moved the referenced methods of the Shellout class into Operations and deleted the rest
in the Ballot class, the contests were a dictionary of arrays (of contest dicts) and are now an array of Contest objects
obliterated the Contests custom iterator class (yeah - though it was fun to write)
removed the use of the logger class and replaced with the Operator.imprimir class/method
addressed the inconsistency of verbose printing (as it 'was' implemented across the logger and Operator classes)
placed all the 'default missing values' via the config.yaml files into the parsing phase - after config file parsing, there are no longer any missing values - all values are now specified in the objects (and above)
cleaned up the Contest object key names - no more overlaps
addressed the lurking 'max_selections' RCV bug by explicitly deciding that current definition of RCV actually means IRV with a single winner - max_selections now only refers to the maximum number of choices a voter can make and does not also refer to how many RCV candidates can win
This resulted bumping the setup_tools version from 0.1.0 to 0.2.0 since the contestCVR structure (in the git log's) is now different
The above is in addition to supporting basic html coloring so that the javascript code does not have to regex it's way through text that can too easily change, etc.
This started as a matching branch for the VTP-web-client milestone2 work to support html output. However, several aspects of the low level data model as well as the OO class design were just too busted to not take the plunge and address some of the issues. So, this is has become rather large.
This resulted bumping the setup_tools version from 0.1.0 to 0.2.0 since the contestCVR structure (in the git log's) is now different
The above is in addition to supporting basic html coloring so that the javascript code does not have to regex it's way through text that can too easily change, etc.