funkwhale merge requestshttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests2020-07-06T11:07:27Zhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/1160Resolve "Automatically confirm email once the confirmation link is clicked in...2020-07-06T11:07:27ZAgateResolve "Automatically confirm email once the confirmation link is clicked instead of showing the form"Closes #407Closes #4071.0https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/962Fix 406 error when fetching library2019-11-28T09:30:09ZAgateFix 406 error when fetching libraryBecause of a commented line (during my tests for cover attachments :s)Because of a commented line (during my tests for cover attachments :s)0.17https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/838See #432: admin for tags2019-07-29T08:48:44ZAgateSee #432: admin for tagsSee #432
- [x] admin API to manage tags (retrieve, detail, delete)
- [x] include tags in admin API representations of artists, albums and tracks
- [x] admin UI to list, detail and delete tags
- [x] display tags on artists, albums and t...See #432
- [x] admin API to manage tags (retrieve, detail, delete)
- [x] include tags in admin API representations of artists, albums and tracks
- [x] admin UI to list, detail and delete tags
- [x] display tags on artists, albums and tracks detail admin pages
- [x] support filtering by tag on admin tracks, albums and artists lists
- [x] added a link to tag admin on user-facing tag detail page (assuming user has sufficient permissions)
# Demo
![Peek_2019-07-25_11-05](/uploads/0484458a94c566f547087e6319fea0d5/Peek_2019-07-25_11-05.mp4)
cc @funkwhale/reviewers-python, @funkwhale/reviewers-front0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/839Fix #432: release notes and documentation for tags2019-07-25T11:56:52ZAgateFix #432: release notes and documentation for tagsCloses #432
cc @SporiffCloses #432
cc @Sporiff0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/832See #432: UI for tags (first round)2019-07-25T09:10:57ZAgateSee #432: UI for tags (first round)See #432
(Based on !830, so only commits after 0de16dc2 are relevant for review)
So, this MR implements the first set of UI pages and components for using tags :tada:
cc @funkwhale/reviewers-front
## What's included
- [x] Adding t...See #432
(Based on !830, so only commits after 0de16dc2 are relevant for review)
So, this MR implements the first set of UI pages and components for using tags :tada:
cc @funkwhale/reviewers-front
## What's included
- [x] Adding tags, using the existing "Edit" feature, from artists, albums and tracks pages
- [x] Display tags on artsts, albums and tracks pages
- [x] Added support for filtering by one or more tags on Artists and Albums browse
- [x] A brand new "Tag" page, where you can see artists, albums and tracks matching a given tag
## What's not included (and will be done separately, after this is merged)
- [x] UI for tag radios
- [x] Admin UI (list tags, display tags in admin UI for artists, tracks, etc.)
- [x] Support for searching tag in the sidebar search
## Demo of the feature
![tags](/uploads/a082c987681c1b846bc92092dfa54f93/tags.mp4)0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/834See #432: tags radio and search2019-07-25T09:10:12ZAgateSee #432: tags radio and searchSee #432
- [x] Added a "Start radio" button on tag detail pages
- [x] Searching in the sidebar now yield tags in results (clicking a result redirects to the tag detail page)
- [x] Support for using tags in custom radios!
![Peek_...See #432
- [x] Added a "Start radio" button on tag detail pages
- [x] Searching in the sidebar now yield tags in results (clicking a result redirects to the tag detail page)
- [x] Support for using tags in custom radios!
![Peek_2019-07-18_15-37](/uploads/41db5dc7c2febf5dad7d7223662f11bf/Peek_2019-07-18_15-37.mp4)
cc @funkwhale/reviewers-front @funkwhale/reviewers-python0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/830See #432: API for tags2019-07-25T09:09:58ZAgateSee #432: API for tagsSee #432
So, I expect this to be the last *big* merge request regarding tag support in the API. There will probably be a smaller MR specific to radios, an admin specific MR, and some minor tweaks here and there, but I consider the bac...See #432
So, I expect this to be the last *big* merge request regarding tag support in the API. There will probably be a smaller MR specific to radios, an admin specific MR, and some minor tweaks here and there, but I consider the backend implementation mostly complete with this branch, from an end user perspective:
- [x] Extend tagging support to albums and artists
- [x] API to suggest tags on tracks, albums and artists (using our existing suggestion system)
- [x] Expose tags in artist, album and track representations
- [x] Enforce a (configurable) maximum number of tags per entity, to avoid performance issues or attacks
Time for user interface!0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/829See #432: added model tagging logic on artists and albums2019-07-25T09:09:58ZAgateSee #432: added model tagging logic on artists and albumsSee #432
Just ensure we can add/retrieve tags for artists and albums (in addition to tracks). Only at the model layer, because I need it to proceed with other merge requests today.
(not waiting for review here, sorry about that)See #432
Just ensure we can add/retrieve tags for artists and albums (in addition to tracks). Only at the model layer, because I need it to proceed with other merge requests today.
(not waiting for review here, sorry about that)0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/824See #432: API endpoints to query tags2019-07-25T09:09:58ZAgateSee #432: API endpoints to query tagsSee #432
- [x] Replace old endpoint with our new logic
- [x] Filter to search for specific tags and order the results (will be used for autocompletion in the UI)
- [x] Minor fixes to the `load_test_data` command
cc @funkwhale/reviewer...See #432
- [x] Replace old endpoint with our new logic
- [x] Filter to search for specific tags and order the results (will be used for autocompletion in the UI)
- [x] Minor fixes to the `load_test_data` command
cc @funkwhale/reviewers-python0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/822See #432: tags acquisition (from audio files)2019-07-25T09:08:37ZAgateSee #432: tags acquisition (from audio files)See #432
A rather small Merge Request :)
- [x] Parse the "Genre" field from mp3/ogg/theora/flac/opus files
- [x] Convert the "Genre" field to a list of tags (with basic cleaning/case fixing)
- [x] Use the resulting list to assign tags...See #432
A rather small Merge Request :)
- [x] Parse the "Genre" field from mp3/ogg/theora/flac/opus files
- [x] Convert the "Genre" field to a list of tags (with basic cleaning/case fixing)
- [x] Use the resulting list to assign tags to the created track0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/814Implement tag models2019-07-25T09:08:09ZAgateImplement tag modelsSee #432
Rather big MR, so let me outline the work done below:
- [x] The first few commits are not directly related to tagging, but introduce a new command, `load_test_data` that can be used to populate the database with test acco...See #432
Rather big MR, so let me outline the work done below:
- [x] The first few commits are not directly related to tagging, but introduce a new command, `load_test_data` that can be used to populate the database with test accounts, tracks, albums, artists, uploads, libraries and tags. This was needed to do basic testing on a database with ~50K tracks and ~100K tags-tracks relationships. **Review of the `load_test_data.py`, associated tests and random-data generators in `funkwhale_api/factories.py` isn't strictly required, because it's primarily meant for development and won't affect production pods. If you skip that, the MR is actually much smaller ;)**
- [x] Dropped django-taggit
- [x] Create a new `tags` app, which mainly consist of a `Tag` and `TaggedItem` model. `TaggedItem` stores the relationship between tags and other objects (tracks, artists, etc.)
- [x] Added a `?tag` filter in the API to test that we can actually filter using tags and validate the performance
- [x] Fixed some issues introduced by the change from `taggit.Tag` model to our own (e.g in radios)
- [x] Removed obsolete logic because of the changes
- [x] Enable [postgres's citext extension](https://www.postgresql.org/docs/current/citext.html#AEN178177) to ensure our tags stay unique in DB regardless of the case and make search easier
The MR doesn't include a separate `Genre` model as initially mentioned in #525. Before doing that, I'd like to start building the Imorter / UI / APIs / Federation on top of tags, and see how it goes :)
Note: the failing CI test is unrelated (it also affects develop), I'm working on that
cc @funkwhale/reviewers-python 0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/836See #432: expose and federate tags on artists and albums2019-07-24T07:36:13ZAgateSee #432: expose and federate tags on artists and albumsSee #432
Simply expose tags on artists and albums ActivityPub objects (only tracks were supported before), and import tags from remote objects.
cc @funkwhale/reviewers-pythonSee #432
Simply expose tags on artists and albums ActivityPub objects (only tracks were supported before), and import tags from remote objects.
cc @funkwhale/reviewers-python0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/835See #432: genre support in Subsonic API2019-07-22T07:21:58ZAgateSee #432: genre support in Subsonic APISee #432
- [x] Implements the `getGenres` endpoints in Subsonic API
- [x] Implement the `byGenre` filter in `getAlbumList2`
cc @funkwhale/reviewers-pythonSee #432
- [x] Implements the `getGenres` endpoints in Subsonic API
- [x] Implement the `byGenre` filter in `getAlbumList2`
cc @funkwhale/reviewers-python0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/823See #432: expose and reuse tags over federation2019-07-10T17:41:01ZAgateSee #432: expose and reuse tags over federationSee #432, cf !822
This small MR deals with:
- [x] exposing the tags associated with tracks in ActivityPub representations
- [x] import the tags provided on remote Track objects in the local copy
cc @funkwhale/reviewers-pythonSee #432, cf !822
This small MR deals with:
- [x] exposing the tags associated with tracks in ActivityPub representations
- [x] import the tags provided on remote Track objects in the local copy
cc @funkwhale/reviewers-python0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/797Resolve "Hide favorites radios when user does not have any favorites"2019-06-24T11:30:57ZCiarán Ainsworthsporiff@funkwhale.audioResolve "Hide favorites radios when user does not have any favorites"This MR adds a simple ``computed`` value to determine if the user is authenticated and has favorites for the radios to be visible to them.
![Radio](/uploads/e66ef881d8335a838cd4866e16b1961d/Radio.webm)
Closes #419This MR adds a simple ``computed`` value to determine if the user is authenticated and has favorites for the radios to be visible to them.
![Radio](/uploads/e66ef881d8335a838cd4866e16b1961d/Radio.webm)
Closes #419backlogCiarán Ainsworthsporiff@funkwhale.audioCiarán Ainsworthsporiff@funkwhale.audiohttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/541Fix #424: Hide unplayable/emtpy playlists in "Browse playlist" pages2019-01-17T10:45:00ZAgateFix #424: Hide unplayable/emtpy playlists in "Browse playlist" pagesCloses #424Closes #424https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/540Fix #410: Hide invitation code field during signup when it's not required2019-01-17T10:33:19ZAgateFix #410: Hide invitation code field during signup when it's not requiredCloses #410Closes #4100.18https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/450Fix #422: Do not display "view on MusicBrainz" button if we miss the mbid2018-10-20T14:28:35ZAgateFix #422: Do not display "view on MusicBrainz" button if we miss the mbidCloses #422Closes #4220.18