funkwhale merge requestshttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests2019-09-26T07:45:53Zhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/906Added info about pod configuration / reconfiguration with install script2019-09-26T07:45:53ZAgateAdded info about pod configuration / reconfiguration with install scriptcc @Sporiffcc @Sporiffhttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/905Fix #878: Added a info message on embed wizard when anonymous access to conte...2019-09-26T07:46:34ZAgateFix #878: Added a info message on embed wizard when anonymous access to content is disabledCloses #878
![image](/uploads/1d9ef9eda546c76006bc4f35989e0897/image.png)
cc @funkwhale/reviewers-frontCloses #878
![image](/uploads/1d9ef9eda546c76006bc4f35989e0897/image.png)
cc @funkwhale/reviewers-front0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/904Translations integration2019-09-23T10:02:20ZAgateTranslations integration0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/903Fixed unkwown typo :D2019-09-23T09:36:34ZAgateFixed unkwown typo :DI do this a lot x)I do this a lot x)https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/902Fix #865: Performance optimization on /artists, /albums and /tracks endpoints2019-09-24T07:48:05ZAgateFix #865: Performance optimization on /artists, /albums and /tracks endpointsFix #865
After the long discussion in #865, I've attempted to implement the suggested query plans to improve the response time, however, it only helped marginally. While doing this, I identified that some `select_related` and `annota...Fix #865
After the long discussion in #865, I've attempted to implement the suggested query plans to improve the response time, however, it only helped marginally. While doing this, I identified that some `select_related` and `annotate` calls where resulting in really slow query (especially the tracks count on `/artists`, so I removed it and used a different approach.
Serialization was also a significant bottleneck (especially with nested objects). I stumbled upon https://hakibenita.com/django-rest-framework-slow which offered some benchmark, and suggested replacing read only serializers with simple functions would bring significant performance improvements.
Based on my tests, this is true, and basically halved the response time on related endpoints. I've also upgraded django rest framework to the latest `3.10.3` release, to benefit from https://github.com/encode/django-rest-framework/pull/6709, which should further increase performance when serializing objects.
All of this was tested on https://open.audio and, in conjunction, reduced the loading time of `/api/v1/artists`, `/api/v1/albums`, `/api/v1/tracks` by a factor 2 or 3.
cc @funkwhale/reviewers-python0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/901Fix #883: Prevent usage of too weak passwords2019-09-21T14:11:09ZAgateFix #883: Prevent usage of too weak passwordsCloses #883
- [x] Min length increased from 6 to 8 chars
- [x] Prevent use of common pwned password
- [x] Prevent use of similar strings in username / email and password
- [x] Prevent numeric password
cc @funkwhale/reviewers-py...Closes #883
- [x] Min length increased from 6 to 8 chars
- [x] Prevent use of common pwned password
- [x] Prevent use of similar strings in username / email and password
- [x] Prevent numeric password
cc @funkwhale/reviewers-python0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/900Resolve "Add optional donation/contribution link in-app"2019-09-23T09:30:26ZAgateResolve "Add optional donation/contribution link in-app"Closes #839
So, this adds two separate messages:
1. [x] One message to support Funkwhale (the project)
2. [x] One message to support the pod where the user is logged in
Message 1. can be disabled entirely via a setting, and message 2...Closes #839
So, this adds two separate messages:
1. [x] One message to support Funkwhale (the project)
2. [x] One message to support the pod where the user is logged in
Message 1. can be disabled entirely via a setting, and message 2. is disabled unless an admin fill in the corresponding field in the settings. The pod message supports markdown, so it's rather flexible.
Both messages are displayed in the notification tab for the first time 15 days after a user signed up. The notifications count in the sidebar will reflect that. When displayed, the messages offer to schedule a reminder in 30, 60 or 90 days, but can also be disabled completely. I'm not really sure about the wording, so any feedback is welcome!
It seemed appropriate to use the notification tab, because adding a popup or message somewhere else in the frontend would be a bit off, and likely to affect user experience negatively (users would simply want to get rid of the message as fast as possible). It's more discrete this way, but I also think it will yield better results. It's also way easier to design, because we have less constraints in the notifications page than in the sidebar.
At the backend level, I've simply added two new columns on the user table:
- [x] `funkwhale_support_message_display_date`
- [x] `instance_support_message_display_date`
Both columns store a date (or null value). When the date is lower than `now()` the message is displayed to the client. To schedule a reminder, you set a date in the future, and to hide it, you set it to `null`.
cc @funkwhale/reviewers-front @funkwhale/reviewers-python
## Demonstration
![Peek_2019-09-20_14-20](/uploads/57ade41b3ad44c9e7d3ebaf543017ae7/Peek_2019-09-20_14-20.mp4)0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/899Resolve "[Epic] New landing page"2019-09-24T08:03:23ZAgateResolve "[Epic] New landing page"Closes #872 ([forum discussion](https://governance.funkwhale.audio/d/aDqFmMuT/customizable-landing-page-for-instances))
- [x] Redesigned home page
- [x] Redesigned about page
- [x] Changelog / release notes
cc @funkwhale/reviewer...Closes #872 ([forum discussion](https://governance.funkwhale.audio/d/aDqFmMuT/customizable-landing-page-for-instances))
- [x] Redesigned home page
- [x] Redesigned about page
- [x] Changelog / release notes
cc @funkwhale/reviewers-front
## Try it yourself
- On open.audio: http://funkwhale.pages.funkwhale.audio/-/funkwhale/-/jobs/29685/artifacts/front-review/index.html?_server=https://open.audio
- On my own server: http://funkwhale.pages.funkwhale.audio/-/funkwhale/-/jobs/29685/artifacts/front-review/index.html?_server=https://funkwhale.eliotberriot.com
## Demo
![Peek_2019-09-19_17-59](/uploads/810cc43ba0580d7144e3e9cc52246876/Peek_2019-09-19_17-59.mp4)
0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/898See #872: rules and contact email settings2019-09-19T09:14:21ZAgateSee #872: rules and contact email settingsSee #872
After discussion with @GinnyMcQueen, we agreed that a separate field for server rules would be better. And I've also added the missing setting for contact email.
Merging right away because I need it to continue working, and t...See #872
After discussion with @GinnyMcQueen, we agreed that a separate field for server rules would be better. And I've also added the missing setting for contact email.
Merging right away because I need it to continue working, and this is really small.0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/897Implemented missing getSongsByGenre subsonic endpoint2019-09-19T19:09:19ZAgateImplemented missing getSongsByGenre subsonic endpointAs reported on matrix, we were missing this endpoint, which caused some client crash on at least DSub and Ultrasonic
cc @funkwhale/reviewers-pythonAs reported on matrix, we were missing this endpoint, which caused some client crash on at least DSub and Ultrasonic
cc @funkwhale/reviewers-python0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/896Resolve "Add button to delete users and their content"2019-09-21T14:20:50ZAgateResolve "Add button to delete users and their content"Closes #852
- [x] API to delete account
- [x] Federate account deletion
- [x] Remove locally known content
- [x] Keep a track of deleted account username to avoid impersonation
- [x] UI to delete account
- [x] Documentation
c...Closes #852
- [x] API to delete account
- [x] Federate account deletion
- [x] Remove locally known content
- [x] Keep a track of deleted account username to avoid impersonation
- [x] UI to delete account
- [x] Documentation
cc @funkwhale/reviewers-python @funkwhale/reviewers-front @Sporiff
![Peek_2019-09-16_17-42](/uploads/f8b2ecbddd4aacf900e97e18ead3f0da/Peek_2019-09-16_17-42.mp4)0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/895Fix #898: Pickup folder.png and folder.jpg files for cover art when importing...2021-10-19T19:33:01ZAgateFix #898: Pickup folder.png and folder.jpg files for cover art when importing from CLICloses #898
the initial logic wasn't tested, so I also added some tests.
cc @funkwhale/reviewers-pythonCloses #898
the initial logic wasn't tested, so I also added some tests.
cc @funkwhale/reviewers-python0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/894See #872: new "terms of service" settings2019-09-16T17:33:40ZAgateSee #872: new "terms of service" settingsSee #872:
- [x] API and UI to edit this setting
- [x] Expose the terms in Nodeinfo
- [x] Unrelated performance fix to reduce the number of redis calls when building nodeinfo data (15 to 2)
The setting isn't used/displayed anywhere yet....See #872:
- [x] API and UI to edit this setting
- [x] Expose the terms in Nodeinfo
- [x] Unrelated performance fix to reduce the number of redis calls when building nodeinfo data (15 to 2)
The setting isn't used/displayed anywhere yet.
cc @funkwhale/reviewers-python0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/893See #872: banner setting2019-09-17T09:03:32ZAgateSee #872: banner settingSee #872
- [x] Add a configurable banner setting (API and admin UI)
- [x] Expose the banner URL in Nodeinfo
This isn't displayed anywhere yet, but this is a requirement for #872
cc @funkwhale/reviewers-front @funkwhale/reviewers-pyt...See #872
- [x] Add a configurable banner setting (API and admin UI)
- [x] Expose the banner URL in Nodeinfo
This isn't displayed anywhere yet, but this is a requirement for #872
cc @funkwhale/reviewers-front @funkwhale/reviewers-python
![Peek_2019-09-16_11-18](/uploads/9c7d3276fa12fc66d9a71edd4578a3c9/Peek_2019-09-16_11-18.mp4)0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/892Fix issue with search transition being purged2019-09-16T07:38:17ZCiarán Ainsworthsporiff@funkwhale.audioFix issue with search transition being purgedRecent changes to CSS broke search by purging the ``scale`` transition in CSS
![results](/uploads/8c3f452334eb6f1c00853d72da3d1bbb/results.png)
This fix whitelists the value to ensure it is not purged
![fix](/uploads/0bff474db37c22d8b...Recent changes to CSS broke search by purging the ``scale`` transition in CSS
![results](/uploads/8c3f452334eb6f1c00853d72da3d1bbb/results.png)
This fix whitelists the value to ensure it is not purged
![fix](/uploads/0bff474db37c22d8b61147e1515d2e35/fix.png)Ciarán Ainsworthsporiff@funkwhale.audioCiarán Ainsworthsporiff@funkwhale.audiohttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/891Resolve "Search playlist unexpectedly triggers keyboard sortcut commands"2019-09-16T08:00:41ZAgateResolve "Search playlist unexpectedly triggers keyboard sortcut commands"Closes #902
On artists, albums, radios and playlists pages, it ensure we don't trigger a full page reload when search or other filters are specified. This means the focus isn't lost anymore when the data is refreshed, leading to a be...Closes #902
On artists, albums, radios and playlists pages, it ensure we don't trigger a full page reload when search or other filters are specified. This means the focus isn't lost anymore when the data is refreshed, leading to a better user experience and overall, and preventing the issue described in #902: searching something, losing focus, meaning subsequent key presses are considered keyboard shortcuts.
Also fixed a small, unrelated crash when browsing artists and albums with an empty tag=? parameter in URL
cc @funkwhale/reviewers-front0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/890Fix #904: Fixed a responsive display issues on 1024px wide screens2019-09-16T08:01:07ZAgateFix #904: Fixed a responsive display issues on 1024px wide screensCloses #904
cc @funkwhale/reviewers-front
![Peek_2019-09-15_19-34](/uploads/0d902586299309083710c95b4e924658/Peek_2019-09-15_19-34.mp4)Closes #904
cc @funkwhale/reviewers-front
![Peek_2019-09-15_19-34](/uploads/0d902586299309083710c95b4e924658/Peek_2019-09-15_19-34.mp4)0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/889Resolve "Broken 'Less listened' Radio in develop version"2019-09-15T18:22:11ZAgateResolve "Broken 'Less listened' Radio in develop version"Closes #912 and added missing tests for favorites, less-listened and random radios
cc @funkwhale/reviewers-pythonCloses #912 and added missing tests for favorites, less-listened and random radios
cc @funkwhale/reviewers-python0.20https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/888Resolve "Changes to CSS have broken Dark Theme"2019-09-15T17:04:41ZCiarán Ainsworthsporiff@funkwhale.audioResolve "Changes to CSS have broken Dark Theme"Closes #916
Adds ``purgecss ignore`` headers to dark CSS to prevent it being purged when production deployment is built
### Before
![Dark](/uploads/59fe0aeb5e0cc4a359734239e96a9564/Dark.png)
### After
![Real_Dark](/upload...Closes #916
Adds ``purgecss ignore`` headers to dark CSS to prevent it being purged when production deployment is built
### Before
![Dark](/uploads/59fe0aeb5e0cc4a359734239e96a9564/Dark.png)
### After
![Real_Dark](/uploads/5e2fd0fc32c762d0b681fe8126273842/Real_Dark.png)0.20Ciarán Ainsworthsporiff@funkwhale.audioCiarán Ainsworthsporiff@funkwhale.audiohttps://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/887Reduced CSS size by 30% using purgecss2019-09-14T13:12:34ZAgateReduced CSS size by 30% using purgecssBased on my tests, it didn't break anything, but if it does we can alway revert it before the release :)
It gives us a 30% reduction of our CSS size, from 680 to 480kb, so, that's something !Based on my tests, it didn't break anything, but if it does we can alway revert it before the release :)
It gives us a 30% reduction of our CSS size, from 680 to 480kb, so, that's something !0.20