* Fix a gettext marked string that has one too many parantheses around it, excluding it from translations. Also, clean up layout around it.
* Add Swedish translation for the above.
* More explicit localization steps in the README to avoid recurring mistakes.
* Move the oled script's PiCmds module to common, and rename it SysCmds.
* Use sys_cmds.get_ip_and_host() in web UI code.
* Move the auth_active() method to device_utils
* Rename device_utils to web_utils. Make auth_active() method take the group as argument.
* Migrate all pi_cmds methods to the SysCmds common class.
* Display hostname and ip in Web UI.
* Resolve or suppress pylint warnings.
* Resolve a pylint warning.
* Resolve or suppress pylint warnings.
* Import libraries at the top level for readability. In my testing on a Pi3B+, this leads to ~1.5k more memory being used by the python3 process.
* Change page title as requested by akuker.
* Reenable the import-outside-toplevel pylint rule.
* Resolve pylint warnings.
* Fix error following refactoring.
* Minor UI tweaks.
* Cleanup.
* Break out bridge config validation into a utility method.
* Move the dropzonejs method into the web_utils package
* Move get_logs method into SysCmds class.
* Improve get logs UI.
* Resolve pylint warning.
* Standardize class instance name.
* Add capabilities to RaCtlCmds.get_device_types() to return the image file support boolean, and list of supported block sizes.
* Inquire rascsi backend about the min block size rather than hard coding values in the web UI.
* Add class methods for getting lists of certain device types.
* Use the new class methods to get lists of device types in the web ui.
* Make use of the new class methods in the oled script.
* Remove now unused constants, and simplify logic in common_settings
* Improve device name mapping to extend the existing dictionary rather than creating a new data structure.
* Use jinja2 sort filters instead of sorting in python code. Removing redundant variables.
* Introduce the get_device_name() utility method which returns the translated name for a device acronym. Use the new method to display device name when attaching devices.
* Fix typo
* Rename Support Device to Periperal Device. General tweaks to UI strings.
* Tweak UI string.
* Fix error.
* Tentative Web UI for the Printer device.
* timeout must be a positive value
* Change the attach device class method to accept a dict with arbitrary key value pairs of parameters to be passed to the protobuf interface, rather than hard coded ones. Also renames the RaCtlCmds.attach_image() class method to attach_device().
* Make download_to_iso() use the new attach interface.
* Dynamically get the form items for support devices.
* Change the data structure returned by RaCtlCmds.get_device_types() to a dict, which contains the supported parameters and their default values. Leverage this data in the web ui to derive the form fields from the capabilities of rascsi.
* Tweak UI labels.
* Update FileCmds.read_config() to work with the new RaCtlCmds.attach_device() method.
* Check for numeric value.
* Streamline the UI for support devices.
* Handle support devices better by the oled screen.
* Clean up html.
* Dynamically adjust form field size based on data length.
* Use the comparison operator that Python3 likes.
* Add SUPPORT_DEVICE_TYPES category, and add Host Service to it.
* Add webapp UI for attaching a support device.
* Make the OLED screen aware of the support device type.
* Tweak test to make it clear that this is experimental functionality.
* Tweak device type names
* Improve the device type selection UI
* Extend the image_files data structure with human readable device name, instead of having complex for loops in the jinja2 template.
* Leverage device type constants in the OLED monitor script
* Fix typo
* Generate the list of valid network devices that can be attached programmatically
* Fix typo
* Updating README.md to reflect the changes made to the project file structure
* Added corrections as per comments
Co-authored-by: Nemanja Lukic <nemanja.lukic@forgerock.com>