### Description The existing implementation for exporting playout logs to a CSV file incorporates a very simplified CSV format. Some aspects of the complete [RFC](https://www.rfc-editor.org/rfc/rfc4180) are missing, such as escaping of quotes, and quoting of fields that contain certain characters. This is problematic for common office spreadsheet tools, and practically, anything else. Many radio stations rely on this functionality to work well for exporting playout data, for example, in order to compile data for reporting requirements. **This is a new feature**: The changes in this PR add quoting of fields containing a comma, as well as those containing a CR/LF. It also escapes quotes by doubling them. I'm not sure it makes CSVexport.js completely RFC 4180 compliant, but it is much closer than it was. **I have updated the documentation to reflect these changes**: I don't think there are any documentation changes necessary; this is probably expected behavior for anyone trying to use the CSV exporter. ### Testing Notes **What I did:** To validate this, I did a clean install of Debian, cloned from the official libretime repo, and applied the code as a patch to the installer. I then proceeded with the install and then loaded a database from a running system (so that I had some playout data to test with). I then performed the playout history export and examined the resulting CSV file and after seeing previously problematic fields properly quoted, was convinced it looked the way I expected. I loaded the csv file into Libreoffice Calc and did not see any errors. **How you can replicate my testing:** See "What I did" above, basically run the patch after cloning the installer from the repo. You could also apply the changes to a running system by applying the patch to the file: /usr/share/libretime/legacy/public/js/libs/CSVexport.js Be sure to clear your browser cache and do a hard reload of the web interface, before re-testing. ### **Links** Closes: #2477 |
||
---|---|---|
.github | ||
analyzer | ||
api | ||
api-client | ||
dev | ||
docker | ||
docs | ||
installer | ||
legacy | ||
playout | ||
shared | ||
tools | ||
worker | ||
.codespellignore | ||
.dockerignore | ||
.env.dev | ||
.gitattributes | ||
.gitignore | ||
.pre-commit-config.yaml | ||
.vale.ini | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
Dockerfile | ||
LEGACY.md | ||
LICENSE | ||
Makefile | ||
README.md | ||
SECURITY.md | ||
Vagrantfile | ||
cloud-init.yml | ||
codecov.yml | ||
docker-bake.json | ||
docker-compose.override.yml | ||
docker-compose.yml | ||
install | ||
pyproject.toml |
README.md
LibreTime makes it easy to run your own online or terrestrial radio station. It is a community managed fork of the AirTime project.
It is managed by a friendly inclusive community of stations from around the globe that use, document and improve LibreTime. Join us in fixing bugs and in defining how we manage the codebase going forward.
Check out the documentation for more information and start broadcasting!
Please note that LibreTime is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
You can find details about our development process in the contributing guide.
Support
To get support for any questions or problems you might have using the software we have a forum at discourse.libretime.org. We are moving towards using the forum to provide community support and reserving the github issue queue for confirmed bugs and well-formed feature requests.
You can also contact us through Matrix (#libretime:matrix.org) where you can talk with other users and developers.
Contributors
Code Contributors
This project exists thanks to all the people who contribute.
Financial Contributors
Become a financial contributor and help us sustain our community on OpenCollective.
Individuals
Organizations
Support this project with your organization. Your logo will show up here with a link to your website.
License
LibreTime is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License.
Copyright
Copyright (c) 2011-2017 Sourcefabric z.ú.
Copyright (c) 2017-2023 LibreTime Community
Please refer to the LEGACY file for more information.