steering issueshttps://gitlab.servus.at/aura/steering/-/issues2024-03-29T13:43:17+01:00https://gitlab.servus.at/aura/steering/-/issues/215Implement bulk delete endpoints2024-03-29T13:43:17+01:00Konrad MohrfeldtImplement bulk delete endpointsSome code parts of the dashboard, especially in the calendar, will dispatch hundreds of `DELETE` requests, i.e. when removing all future timeslots for a schedule. This is a questionable use of server resources and has a very easy solutio...Some code parts of the dashboard, especially in the calendar, will dispatch hundreds of `DELETE` requests, i.e. when removing all future timeslots for a schedule. This is a questionable use of server resources and has a very easy solution: bulk delete requests.
Instead of dispatching multiple `DELETE` requests we dispatch a single `DELETE` request to the collection endpoint. Every item that is left after filtering the queryset is deleted. This should be quite easy to implement because we can re-use the FilterSet class of the list-operation.
Example for bulk deletion of future timeslots:
`DELETE /api/v1/timeslots?scheduleIds=4&startsAfter=2024-03-27T19:00:00Z`
This query would delete all timeslots that belong to the schedule with id 4 and are planned to start after March 27, 2024 at 19:00:00 UTC.1.0-alpha5Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/214Attach notes to timeslots upon creation2024-03-28T21:36:35+01:00Ernesto Rico SchmidtAttach notes to timeslots upon creationAs discussed with @kmohrf , upon creation of a `Timeslot` a `Note` should be created and attached to it.As discussed with @kmohrf , upon creation of a `Timeslot` a `Note` should be created and attached to it.1.0-alpha4 — Raving Raccoon 🤪🦝Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/211Extend Steering API documentation by adding relevant annotations2024-03-14T16:19:03+01:00David TrattnigExtend Steering API documentation by adding relevant annotations1.0-alpha4 — Raving Raccoon 🤪🦝Chris PastlChris Pastlhttps://gitlab.servus.at/aura/steering/-/issues/210Refactor Steering API endpoints currently not in the OpenAPI docs, add them t...2024-03-14T17:40:08+01:00David TrattnigRefactor Steering API endpoints currently not in the OpenAPI docs, add them to the docsaura#192+
---
API endpoints which are currently not listed in https://api.aura.radio/steering/:
- `/playout`
- `/program/week/`
- `/program/<int:year>/<int:month>/<int:day>/`aura#192+
---
API endpoints which are currently not listed in https://api.aura.radio/steering/:
- `/playout`
- `/program/week/`
- `/program/<int:year>/<int:month>/<int:day>/`1.0-alpha4 — Raving Raccoon 🤪🦝Chris PastlChris Pastlhttps://gitlab.servus.at/aura/steering/-/issues/208[EPIC] Steering API integration test suite (medium/low prio endpoints)2024-03-14T15:53:00+01:00David Trattnig[EPIC] Steering API integration test suite (medium/low prio endpoints)Follow up from: https://gitlab.servus.at/aura/steering/-/issues/204+
---
### Medium and low priority
- `/api/v1/categories/**`
- `/api/v1/funding-categories/**`
- `/api/v1/languages/**`
- `/api/v1/licenses/**`
- `/api/v1/music-focus/*...Follow up from: https://gitlab.servus.at/aura/steering/-/issues/204+
---
### Medium and low priority
- `/api/v1/categories/**`
- `/api/v1/funding-categories/**`
- `/api/v1/languages/**`
- `/api/v1/licenses/**`
- `/api/v1/music-focus/**`
- `/api/v1/link-types/**`
- `/api/v1/types/**`
- `/api/v1/topics/**`1.0-alpha5https://gitlab.servus.at/aura/steering/-/issues/205Add `make release` target to the Makefile2024-03-14T19:38:31+01:00David TrattnigAdd `make release` target to the MakefileIn order to have a common release process, we want to add a `make release` target to the Makefile, to work like in other repositories.
Compare the [release process in the docs](https://docs.aura.radio/en/latest/developer/releases.html#r...In order to have a common release process, we want to add a `make release` target to the Makefile, to work like in other repositories.
Compare the [release process in the docs](https://docs.aura.radio/en/latest/developer/releases.html#release-workflow).1.0-alpha4 — Raving Raccoon 🤪🦝Chris PastlChris Pastlhttps://gitlab.servus.at/aura/steering/-/issues/204[EPIC] Steering API integration test suite (high prio endpoints)2024-03-22T16:09:49+01:00David Trattnig[EPIC] Steering API integration test suite (high prio endpoints)Parent: https://gitlab.servus.at/aura/aura/-/issues/175+
---
To ensure friction-less integration and compatibility with other services, we need a test suite for the Steering API.
These tests should be running as a CI/CD pipeline step a...Parent: https://gitlab.servus.at/aura/aura/-/issues/175+
---
To ensure friction-less integration and compatibility with other services, we need a test suite for the Steering API.
These tests should be running as a CI/CD pipeline step and provide these benefits:
- No broken code is committed to `main`
- The Dashboard test suite is not the only place to uncover bugs or breaking changes (_transfer of responsibilities_)
- Any API changes are documented and transparent by changes of the test cases
- API consumers, like people at the radio stations using the API, have the added benefit to get a "code example" on how to use the API. This previously was an error prone process, as the API Docs at https://api.aura.radio/steering/ are not fully documented.
## Sub Tasks
### High priority
Already done by @eigenwijsje:
- [x] `/api/v1/users/**` (99%)
- [x] `/api/v1/rrules/**` (read-only)
- [x] `/api/v1/notes/**` (100%)
- [x] `/api/v1/shows/**` (100%)
- [x] `/api/v1/hosts/**` (87%)
- [x] `/api/v1/images/**` (97%)
- [x] `/api/v1/timeslots/**` (98%)
- [x] `/api/v1/schedules/**` (100%) (Collision detection might be good to have 100% plus further thinking about test case which have existing data in the test case, to trigger "special scenarios")
## Follow up task
- https://gitlab.servus.at/aura/steering/-/issues/208+1.0-alpha4 — Raving Raccoon 🤪🦝Chris PastlChris Pastlhttps://gitlab.servus.at/aura/steering/-/issues/197[STORY] as a ProKo, I want more precise search results when searching for a s...2024-02-21T15:12:01+01:00David Trattnig[STORY] as a ProKo, I want more precise search results when searching for a show on the ShowsList, so I can do my work fasterProKos often have to switch between shows they edit, and this means that searching for a show by its name (in order to edit it) is a very frequent task. Currently, steering's search function which is accessible on the dashboard in the Al...ProKos often have to switch between shows they edit, and this means that searching for a show by its name (in order to edit it) is a very frequent task. Currently, steering's search function which is accessible on the dashboard in the All Shows page via the "search for name" field, looks not only into the name of a show but also searches in slug & description. This leads to unprecise search results, and users have to detail their search quite a lot to just get one show as result. (see screenshot as example - searching for "am puls des lebens" gives back a lot of more shows than expected)
to make the search faster and more precise, @kmohrf suggested to improve the search by:
- limit the search only to the "show name" and slug and/or
- give more weight to the show name in the search algorithm.
Since the search is labeled "search by name" in the dashboard, from a user perspective it is not evident that the search also includes the show descriptions.
![image](/uploads/87ce404cbf3ff44de3fe1aef94fbbfb6/image.png)
## Optional implementation
This is only suggested, if possible with litte effort.
Currently it searches the title but also the subtitle and description. Since programme managers usually need to search by the show title most often, the results should be matched with same weights, like this:
- title: 1
- slug: 0.7 if currently included at all
- subtitle: 0.5
- description: 0.2 or remove it altogehter, since it is not displayed anyway
The actual weights need to be tested an refined.
To verify it's working, the example from the screenshot should return the show "Am Puls des Lebens" as a first hit.
Let's discuss the required effort for the solution. As a workaround matching only the title could be sufficient too.1.0-alpha5Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/190Optionally load advanced configuration file from `/etc/aura/steering.py`2024-03-21T18:10:21+01:00David TrattnigOptionally load advanced configuration file from `/etc/aura/steering.py`To avoid having complicated instruction to load advanced settings, like for LDAP configuration, we want to optionally load the file located in `/etc/aura/steering.py`. This should be possible with [Django's `execfile()`](https://stackove...To avoid having complicated instruction to load advanced settings, like for LDAP configuration, we want to optionally load the file located in `/etc/aura/steering.py`. This should be possible with [Django's `execfile()`](https://stackoverflow.com/questions/2035733/how-to-modularize-django-settings-py).
Note, this extra settings file should be optional. Meaning it can be mounted into the Steering Docker container, but it's not guaranteed. Therefore the original settings file needs to have a check if a.) the path is existing and b.) if it's not a folder. Compare the implementation in other AURA repositories.1.0-alpha6Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/177Implement Groups & Permissions2024-03-27T11:31:22+01:00Ernesto Rico SchmidtImplement Groups & PermissionsParent: aura#156+
---
Implement Groups & Permissions and expose them together with the User.Parent: aura#156+
---
Implement Groups & Permissions and expose them together with the User.1.0-alpha4 — Raving Raccoon 🤪🦝Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/176Code is not formatted according to pre-commit rules2023-11-08T17:37:42+01:00Konrad MohrfeldtCode is not formatted according to pre-commit rulesParent: https://gitlab.servus.at/aura/aura/-/issues/110+
---
When committing code I’ve noticed that old code is reformatted that I haven’t even touched.
After running `pipx run black==23.7.0 --check .` in the repository __a lot__ of fil...Parent: https://gitlab.servus.at/aura/aura/-/issues/110+
---
When committing code I’ve noticed that old code is reformatted that I haven’t even touched.
After running `pipx run black==23.7.0 --check .` in the repository __a lot__ of files were marked as invalid. I guess that after c31798dfd9fa86a7f9dfe599c5005f0f988e3542 has been comitted, some of the styles black applies have changed compared to previous versions of black.
I see two tasks:
* [ ] The code should be reformatted according to the black version specified in `.pre-commit-config.yaml`
* [ ] A lint CI job should be added that automatically checks the code style (and maybe should parse the black version from the `.pre-commit-config.yaml` so they can’t diverge)1.0-alpha5Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/173API and entity to store radio station administration2024-03-29T12:35:05+01:00David TrattnigAPI and entity to store radio station administrationParent: aura#221+
---
See parent.Parent: aura#221+
---
See parent.1.0-alpha4 — Raving Raccoon 🤪🦝Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/172[EPIC] Basic Reporting: Management command to generate annual reports2024-03-21T18:14:57+01:00David Trattnig[EPIC] Basic Reporting: Management command to generate annual reportsParent: https://gitlab.servus.at/aura/aura/-/issues/218+
---Parent: https://gitlab.servus.at/aura/aura/-/issues/218+
---1.1Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/163Squash migrations before first beta version2023-06-23T21:22:40+02:00Ernesto Rico SchmidtSquash migrations before first beta versionWe should squash all database migrations for `steering` before the first beta.We should squash all database migrations for `steering` before the first beta.1.0-beta1Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/154Valid schema for "/steering/api/v1/playout" endpoint2024-03-09T11:18:42+01:00David TrattnigValid schema for "/steering/api/v1/playout" endpointParent: aura#192+
---
Currently returned object does not provide valid OpenApi Schema implementation.
For now I manually built a client model with some workaround. It would be important, if this could be replaced with some official Ste...Parent: aura#192+
---
Currently returned object does not provide valid OpenApi Schema implementation.
For now I manually built a client model with some workaround. It would be important, if this could be replaced with some official Steering interface.
Also consider #120+. The final API schema should be thought together, or be extended when Virtual Timeslots are fully implemented.
## Related
During the implementation of https://gitlab.servus.at/aura/engine/-/issues/129 I realized the endpoint `/steering/api/v1/playout` is not defined in the [API spec](https://api.aura.radio/steering/). This should be covered by steering#210+1.0-alpha5Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/178[STORY] as a radio host, I want to be able to delete field entries in the Gen...2024-03-28T21:38:52+01:00Margarethe Maierhofer-Lischka[STORY] as a radio host, I want to be able to delete field entries in the General Show Info section, so I can clear fields that I may have mistakenly filled outOn the show info page, users have the ability to fill out global metadata info about their show. On some fields the UI does not allow to empty them completely (e.g. if someone mistakenly filled out the Genre field for a non-music show). ...On the show info page, users have the ability to fill out global metadata info about their show. On some fields the UI does not allow to empty them completely (e.g. if someone mistakenly filled out the Genre field for a non-music show). Selecting an item and deleting it produces a "saved / wird gespeichert" dialog by Dashboard but then the item reappears the input field. This concerns the following fields:
- category
- music genre
- hosts / Redaktion
- admins
For the cases of category / hosts / admins, those fields always have to be filled (those are obligatory program info and should not be empty), so the bug actually does not matter from the user-end side. But at least for the music genre field it would matter to clear it out, in case someone has mistakenly filled that field.
see screenshots.
![Screenshot_from_2023-10-31_15-30-51](/uploads/a2dfa2ed2a28a28e05c33002679645b6/Screenshot_from_2023-10-31_15-30-51.png)
![Screenshot_from_2023-10-31_15-30-31](/uploads/3c0af6e9dc9c07070d321ba6b058090d/Screenshot_from_2023-10-31_15-30-31.png)1.0-alpha4 — Raving Raccoon 🤪🦝Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/136API endpoint to provide playlist information2024-03-21T18:18:25+01:00David TrattnigAPI endpoint to provide playlist informationParent: https://gitlab.servus.at/aura/aura/-/issues/155+
---
Currently playlist information can only be gathered post-playout by querying the Engine API playlog or trackservice endpoint. To properly display Show Episodes on the Radio We...Parent: https://gitlab.servus.at/aura/aura/-/issues/155+
---
Currently playlist information can only be gathered post-playout by querying the Engine API playlog or trackservice endpoint. To properly display Show Episodes on the Radio Website, such information needs to be available before the actual playout.
To solve this requirement Steering is acting as an API Proxy, forwarding requests to either:
- Tank (In case the play-out has not happened already, or is in progress)
- Engine API (After the play-out)1.0-alpha6Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/132Expose settings.py in form of a YAML configuration file2024-02-28T22:43:10+01:00David TrattnigExpose settings.py in form of a YAML configuration fileParent: aura#112+
---
Certain settings in Steering currently can only be changed when overriding the [steering/settings.py](https://gitlab.servus.at/aura/steering/-/blob/main/steering/settings.py) file. For example the LDAP binding or i...Parent: aura#112+
---
Certain settings in Steering currently can only be changed when overriding the [steering/settings.py](https://gitlab.servus.at/aura/steering/-/blob/main/steering/settings.py) file. For example the LDAP binding or image sizes are hardcoded in that file.
Since we are moving to a [modular config](aura#112) approach, it would be handy manage configuration settings in a YAML. At the same time, often used and common infrastructure settings required by Docker Compose should be also exposed in form of environment variables. They are set via the Docker Compose config.
Compare the new [structure of configuration settings](https://gitlab.servus.at/aura/aura/-/tree/modular-config/config/services/sample-config) in the modular config branch.
---
**Update July, 2023:**
[Production settings are now documented](https://gitlab.servus.at/aura/steering/-/issues/161), but relatively hard to achieve for non-developers, because of:
- It requires the creation of a Python file
- It complicates the start of *Docker Compose*, as additional parameters are required1.1Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/130Extend Playout API Endpoint to include all playlist information2023-01-12T17:17:19+01:00David TrattnigExtend Playout API Endpoint to include all playlist informationExtend `/steering/api/v1/playout` to include all playlist information currently provided by Tank.
See [AEP05](https://gitlab.servus.at/aura/aura/-/wikis/AEP05-Erweiterung-Datenmodell) and other related tickets.Extend `/steering/api/v1/playout` to include all playlist information currently provided by Tank.
See [AEP05](https://gitlab.servus.at/aura/aura/-/wikis/AEP05-Erweiterung-Datenmodell) and other related tickets.1.1Ernesto Rico SchmidtErnesto Rico Schmidthttps://gitlab.servus.at/aura/steering/-/issues/128Ability to move individual timeslots2023-11-21T12:42:34+01:00David TrattnigAbility to move individual timeslotsParent: aura#123+
---Parent: aura#123+
---1.1