Conreq
Conreq copied to clipboard
Community App Store (Fork)
Description
This PR tracks progress for a fork of Conreq to support a community app store. This will restructure Conreq as a web app platform.
See the readme for more details.
Testing
- Pull down the
archmonger/conreq@app_storebranch from GitHub pip install -r requirements.txtpython manage.py run_conreq
Tasks required
- [x] Remove non-essential functionality from Conreq Core
- [x]
manage.pycommand for starting a new package. - [x]
manage.pycommand for adding an app to a package. - [x] Create database model for app store.
- [x] Create Conreq utilities code.
- [x] Automatically initialize apps at startup
- [x] Notify if duplicate app (development/production copies) are detected
- [x] Prioritize development copies of duplicate app packages
- [x] Design python API for apps to integrate with Conreq
- [x] Clean up sign in, sign up, initialization, and offline templates
- [x] Develop Django-IDOM
- [x] Repository that hosts all known
appsin JSON format. - [x] Automatically enter
SAFE_MODEif apps fail to run - [x] Move pwa defaults out of settings.py
- [x] Background tasks with seconds scheduling resolution
- [x] Simple way to add a user profile attribute
- [x] Update readme to specify new capabilities
- [x] #54
- [x] Add email capabilities
- [x] Move the docs into the main branch
- [x] Automatically backup the database
- [x] Develop password reset
- [x] Serve media files via Django
- [x] Develop Manage Users tab
- [x] Develop Server Settings tab
- [x] Develop User Settings tab
- [x] iFrame Event API
- [x] Allow
settings.envvalues to be put into forms. - [x] Prep Conreq to be pip installable
- [x] Create interface for generating invite links
- [x] Develop App Store tab
- [ ] ReactJS URL routing
Non-Critical Tasks (can happen after PR)
- Create documentation for app development
- Create a handful of new apps
- Create generic API Class Based View (CBV) with CSRFExemptMixin
- Replace
django-compressorwithdjango-pipeline - Create generic UI component apps
- PWA and favicon settings
- Clear cache button
- Installers for all major operating systems
- Automatic license aggregator
- SCSS compiler
- Proper testing suite using
playwright - Locally host all CSS
- Convert views to async
- Convert all tabs to IDOM components
- Registering new health check backends
- Invite email template creator
- Mobile compatibility on all pages
- Configurable search bar
- Landing page framework
- Make sidebar tabs sortable through the admin interface
- Extensible mobile bottom bar
- Remove bootstrap. Use HTML Dialog,popover, container queries, and css nesting instead
Congratulations :tada:. DeepCode analyzed your code in 3.921 seconds and we found no issues. Enjoy a moment of no bugs :sunny:.
π View analysis in DeepCodeβs Dashboard | Configure the bot
π The DeepCode service and API will be deprecated in August, 2021. Here is the information how to migrate. Thank you for using DeepCode π β€οΈ !
If you are using our plugins, you might be interested in their successors: Snyk's JetBrains plugin and Snyk's VS Code plugin.
@rmorshea This branch will be used to both integrate IDOM Conreq, and to flesh our the framework portions of Conreq.
@rmorshea Most of the major IDOM tasks have been completed. The viewport is now procedurally generated based on user installed apps.
Just to give you a heads up, there's a few things that I'm blocked on
- [x] No component hyperlink support (needs
react-router) - [ ] Modal rendering (Cannot hide/display modal without either
react-bootstraporscript=...) - [x] Mobile sidebar togglers (Cannot hide/display modal without either
react-bootstraporscript=...) - [x] Sign out buttons don't refresh the page (Needs
script=...or a custom javascript component)
After I finish the low hanging fruit on this side, I'll see what I can do to support development of these features in IDOM Core.
Sourcery Code Quality Report
β Β Merging this PR will decrease code quality in the affected files by 10.95%.
| Quality metrics | Before | After | Change |
|---|---|---|---|
| Complexity | 9.47 π | 12.87 π | 3.40 π |
| Method Length | 78.04 π | 78.49 π | 0.45 π |
| Working memory | 9.39 π | 17.10 β | 7.71 π |
| Quality | 62.33% π | 51.38% π | -10.95% π |
| Other metrics | Before | After | Change |
|---|---|---|---|
| Lines | 7601 | 1028 | -6573 |
| Changed files | Quality Before | Quality After | Quality Change |
|---|---|---|---|
| manage.py | 95.69% β | 80.53% β | -15.16% π |
| conreq/__init__.py | % | 96.34% β | % |
| conreq/asgi.py | 79.16% β | 71.12% π | -8.04% π |
| conreq/settings.py | 10.01% β | 10.94% β | 0.93% π |
| conreq/urls.py | 42.63% π | 52.84% π | 10.21% π |
| conreq/utils/cache.py | 52.19% π | 59.35% π | 7.16% π |
| conreq/utils/database.py | 91.38% β | 91.54% β | 0.16% π |
| conreq/utils/environment.py | 82.79% β | 80.92% β | -1.87% π |
| conreq/utils/generic.py | 81.60% β | 82.28% β | 0.68% π |
| conreq/utils/threads.py | 83.25% β | 91.23% β | 7.98% π |
Here are some functions in these files that still need a tune-up:
| File | Function | Complexity | Length | Working Memory | Quality | Recommendation |
|---|---|---|---|---|---|---|
| conreq/utils/cache.py | get_or_set_many | 7 β | 192 π | 10 π | 52.13% π | Try splitting into smaller methods. Extract out complex expressions |
| conreq/utils/cache.py | get_or_set | 7 β | 144 π | 12 π | 53.04% π | Try splitting into smaller methods. Extract out complex expressions |
| conreq/utils/generic.py | clean_string | 5 β | 80 π | 10 π | 66.89% π | Extract out complex expressions |
Legend and Explanation
The emojis denote the absolute quality of the code:
- β excellent
- π good
- π poor
- β very poor
The π and π indicate whether the quality has improved or gotten worse with this pull request.
Please see our documentation here for details on how these metrics are calculated.
We are actively working on this report - lots more documentation and extra metrics to come!
Help us improve this quality report!