Extensions
==========
Note: This document is wiped clean after a meeting has their notes moved to devtalk. Feel free to add topics for future discussions here.
* [Latest meeting notes](https://devtalk.blender.org/t/2024-02-05-extensions-project/33239).
-------------
Changelog:
* ~~New 'sponsor' field on the website.~~ Removed
* Tags are now optional.
* Description is no longer part of the manifest.
## Pre-release week tasks
### Blender
- [ ] See [Alpha tasks](https://projects.blender.org/blender/blender/issues/117286).
- [x] New icons and sorting [!118521](https://projects.blender.org/blender/blender/pulls/118521)
- [x] Filter menu
Multi-platform Support:
- [ ] Blender: filter add-ons per OS
- [ ] Show in web
### Back-end
- [x] Abandoned Submission (what to do when a submission is not completed?)
- [x] Users should be maintainers even before pressing submit for review
- [ ] Preview images requirement is not being inforced right now. [#37](https://projects.blender.org/infrastructure/extensions-website/issues/37)
- [ ] Email notifications
### Frontend
- [ ] Show average for version
- [ ] Add OpenGraph
- [ ] Style Abuse submission/detail page
- [ ] Approval Queue: Sort by last activity
- [x] Be able to edit version and changelog.
- [ ] And blender max version?
- [x] There is no way to "remove" a preview image from the first time submission form @martonlente
- [x] Profile page doesnt work well in dark mode @martonlente
- [x] Hide STATUS of image previews
- [x] remove the No Previews pending approval message (for approval queue detail)
- [x] dont show permissions (or lack of) for non-addons
- [x] Allow to delete previews (from submission page) - see devtalk feedback @martonlente
- [x] Cards
- [x] Remove scale up of card thumbnails
- [x] Bigger tags in cards
### General
- [ ] Icon/logo/square thumbnail
- [ ] 16:9 thumbnail (also used for social)
- [ ] Authentication permission
- [ ] Investigate what's wrong with previews (right now if you only have one you need to save draft and then save afterwards for it to be shown)
- [ ] Submission notes
- [x] Crontab for write_stats (download count)
- [ ] E-mail notifications
- [x] Add more tags and document them.
- [ ] [Report a Bug](https://projects.blender.org/infrastructure/extensions-website/issues)
- [x] How to migrate addons to extensions (user manual).
- Onboarding
- A text to help people get started on the front page with a link to
- [x] Update about screenshots
- [ ] Blender Version Max
- [ ] Documentation blender_version_max as something suggested for authors (right now)
- [ ] Also use this to talk about tracks/versions (it could be a document: Versions and Compatibility) - also advice on bumping major number (or at least minor) for new blender releases (to support hot fix with patch versions *.*.1, *.*.2)
- [ ] Allow anyone to "Suggest Blender Version Max (with explanation)"
- [ ] Allow moderators to set blender version max
- [ ] Documentation about working with versions
- [x] Invite more people
- [ ] Amaranth
- [x] Devtalk mention chat
- Blender QoL
- [ ] Blender: Fix the filter UI or logic (install and enable is indeed ONLY while legacy is a legit show)
- [ ] Enum (All, Installed, Enabled) + Show Legacy
- [ ] Save settings BUT indicate that things are being filtered
- [ ] Extension panel (Uninstall + Website buttons, preferences as subpanel)
- [ ] Blender: Move development tools under experimental
- [ ] Have Install button as default
### Moderation
- [ ] Landing page for Abuse Reports
- [ ] Convert that moderators can access reports (https://extensions.blender.org/abuse/reports/1/)
### Good to have, but not required now
- [x] Support delete extensions.
- ~~[ ] PR Video for Alpha Release~~ (we do it for beta)
- [ ] Review Queue: Separate Publishing from Approving
- [ ] Makes sure OpenAPI shows the correct scheme (right not it includes is_listed, ...).
- [ ] Redirects to different API entry points depending on the blender_version argument.
- [ ] Have a way to store all the images from the description locally?
- [ ] HackMD preview for admin flatpages.
- [ ] Blender:
- [ ] Pack Theme as Extension for easy sharing.
### Actionable Feedback from devtalk
- [x] **Small**: Delete Extension (hide the button for now) @martonlente
- [x] **Done**: Reviews: "Not publicly visible" > "Awaiting approval" @martonlente
- [x] **Small**: Reviews: After reviewing (while review is in moderation), the Be First to Review still shows. @martonlente

- [x] **Small**: Version History: Show the latest item expanded (similar to [the LTS changelog](https://www.blender.org/download/lts/3-3/)). @martonlente
- [x] **Small**: Links to have a more distinguishable look in the info panel (underlined?) @martonlente
- [x] **Medium**: Reviews: Forbidden bug [#39](https://projects.blender.org/infrastructure/extensions-website/issues/39)
- [x] Only show Reviews if published
- [ ] **Big**: blender version max - way for people to suggest a version cap, and for moderators to approve this.
- [ ] Big: Search by tags (e.g., by using #Animation?)
- [ ] TBD: List view option
- [ ] Warn about using expensive operations such as frame handlers. (frame_pre, post)
- [ ] First time message
- [x] Tags for themes
- [x] Dark
- [x] Light
- [x] Print
- [x] Accessibility
- [x] High Contrast
- [x] Tags per extension type
### Add-on creaters invited/contacde
* BlenderBIM (Dion) - Dalai
* QuickMenu (Tim/passivestar) - Dalai
* ConjureSDF (João Desager) - Dalai
* ScreenRecording (Nutti) - Dalai
* Baking (Daniel Bystedt) - Dalai
* [BLOSM](https://github.com/vvoovv/blosm) (vvoovv) - Dalai
* Curtis Holt - Dalai (via a form on the site)
* Push to Talk/Edit Breadown (Ines) - Dalai
* Photogrammetry Importer - Sebastin Bullinger - Dalai
Todo:
* BlenderGIS https://github.com/domlysz/BlenderGIS - not compliant - requires API
```
diff --git a/extensions/models.py b/extensions/models.py
index 3c0875b..9f07b29 100644
--- a/extensions/models.py
+++ b/extensions/models.py
@@ -233,7 +233,10 @@ class Extension(
self.save()
def get_absolute_url(self):
- return reverse('extensions:detail', args=[self.type_slug, self.slug])
+ if self.status == self.STATUSES.APPROVED:
+ return reverse('extensions:detail', args=[self.type_slug, self.slug])
+ else:
+ return reverse('reviewers:approval-detail', args=[self.slug])
def get_manage_url(self):
return reverse('extensions:manage', args=[self.type_slug, self.slug])
```