Django backend of Helium's planner application

Overview

CI/CD Codecov Python Versions GitHub License

Helium Platform Project

Prerequisites

  • Python (>= 3.6)
  • Pip (>= 9.0)
  • MySQL (>= 5.7)
  • Redis (>= 3.2)

Getting Started

The Platform is developed using Python and Django.

Project Setup

If developing on Mac, first install Homebrew and install MySQL with brew install mysql.

To setup the Python/Django Platform build environment, execute:

make install

This project is configured to work with a Virtualenv which has now been setup in the .venv folder. If you're unfamiliar with how this works, read up on Virtualenv here. The short version is, virtualenv creates isolated environments for each project's dependencies. To activate and use this environment when developing, execute:

source .venv/bin/activate

All commands below will now be run within the virtualenv (though make commands will always automatically enter the virtualenv before executing).

To ensure the database is in sync with the latest schema, database migrations are generated and run with Django. To run migrations, execute:

make migrate

Once migrations have been run, you can create a super user, which is a standard user that also has access to the /admin site.

python manage.py createsuperuser

Before commits are made, be sure to run tests and check the generated coverage report.

make test

Development

Modules

The Platform project is split up into several modules, all contained within this repository. They are independent modules that can be deployed separately, functioning on separate nodes for scalability.

The project's base configuration is defined under conf. Application-specific configuration variables should have their application name as their prefix.

  • auth
  • common
  • feed
  • importexport
  • planner

Vagrant Development

To emulate a prod-like environment, use the Vagrant box. It's setup is described more thoroughly in the deploy project. This is the recommended way to develop and test for production as this environment is provisioned in the same way other prod-like environments are deployed and interacts with related projects as necessary.

As the Vagrant environment does take a bit more time to setup (even though the setup is largely automated) and can consume more developer and system resources, the local development environment described below is the quickest and easiest way to get up and running.

Local Development

This is the simplest way to get started with minimal effort. To get going (assuming you have followed the "Getting Started" directions above), you should have the ENVIRONMENT environment variable set to "dev".

Now you're all set! To start the development server, execute:

bin/runserver

A development server will be started at http://localhost:8000.

If the USE_NGROK environment variable is set when a dev server is started (using runserver, pyngrok will be used to open a ngrok tunnel.

Additionally, this project also contains a worker that executes asynchronous or scheduled tasks, and the above server can be started with this worker as well. When developing locally, it is less necessary to run this worker (when ENVIRONMENT is "dev", tasks are executed synchronously), but it may still be useful, especially for testing scheduled tasks, so a standalone executable is provided for convenience. To start the server with the worker, ensure Redis is installed locally and instead execute:

bin/runserver --with-worker

Note that credentials to third-party services (for example, AWS services like SES) need to be set in the .env file before those services will work properly. Do NOT commit real credentials to third-party services, even in example files.

Frontend

The frontend is served from a separate repository and can be found here.

Note that the frontend was previously bundled, rendered, and served as a part of this project, but it was pulled out into its own project with the with 1.4.0 release. For reference, checkout the 1.3.8 tag or download it here to see how this was previously done.

Documentation

Auto-generated API documentation is accessible via any environment at /docs. Additional documentation can be found on the Platform Wiki.

Comments
  • Bump django from 2.2.20 to 2.2.22

    Bump django from 2.2.20 to 2.2.22

    Bumps django from 2.2.20 to 2.2.22.

    Commits
    • df9fd46 [2.2.x] Bumped version for 2.2.22 release.
    • d9594c4 [2.2.x] Fixed #32713, Fixed CVE-2021-32052 -- Prevented newlines and tabs fro...
    • 1637003 [2.2.x] Refs CVE-2021-31542 -- Skipped mock AWS storage test on Windows.
    • bcafd9b [2.2.x] Added CVE-2021-31542 to security archive.
    • 3931dc7 [2.2.x] Post-release version bump.
    • ff1385a [2.2.x] Bumped version for 2.2.21 release.
    • 04ac162 [2.2.x] Fixed CVE-2021-31542 -- Tightened path & file name sanitation in file...
    • 7f1b088 [2.2.x] Added CVE-2021-28658 to security archive.
    • e95fbb6 [2.2.x] Post-release version bump.
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies 
    opened by dependabot[bot] 2
  • Bump django from 2.2.20 to 2.2.21

    Bump django from 2.2.20 to 2.2.21

    Bumps django from 2.2.20 to 2.2.21.

    Commits
    • ff1385a [2.2.x] Bumped version for 2.2.21 release.
    • 04ac162 [2.2.x] Fixed CVE-2021-31542 -- Tightened path & file name sanitation in file...
    • 7f1b088 [2.2.x] Added CVE-2021-28658 to security archive.
    • e95fbb6 [2.2.x] Post-release version bump.
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies 
    opened by dependabot[bot] 2
  • Bump django from 2.2.13 to 3.1.7

    Bump django from 2.2.13 to 3.1.7

    Bumps django from 2.2.13 to 3.1.7.

    Commits
    • 56f2ccc [3.1.x] Bumped version for 3.1.7 release.
    • 8f6d431 [3.1.x] Fixed CVE-2021-23336 -- Fixed web cache poisoning via django.utils.ht...
    • 536d117 [3.1.x] Added documentation extlink for bugs.python.org.
    • 921ffcb [3.1.x] Fixed #32438 -- Fixed typo in docs/topics/testing/tools.txt.
    • b1416cb [3.1.x] Fixed #32430 -- Doc'd base class-based views.
    • 4f5e550 [3.1.x] Fixed #32408 -- Doc'd django.views.generic.detail.BaseDetailView.
    • efaf9f4 [3.1.x] Fixed backends.postgresql.tests.Tests.test_nodb_cursor_raises_postgre...
    • 5dec57a [3.1.x] Fixed #31550 -- Adjusted ASGI test_file_response for various Windows ...
    • 30b7717 [3.1.x] Corrected typo in advice to new contributors.
    • 526a6f0 [3.1.x] Refs #32412 -- Adjusted link from tutorial to reference docs.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump pyngrok from 5.0.1 to 5.0.2

    Bump pyngrok from 5.0.1 to 5.0.2

    Bumps pyngrok from 5.0.1 to 5.0.2.

    Release notes

    Sourced from pyngrok's releases.

    5.0.2

    Changed

    • Migrated build from Travis CI to GitHub Actions.

    Fixed

    • Errors when bind_tls was set to False.
    • Documentation improvements.
    Changelog

    Sourced from pyngrok's changelog.

    5.0.2 - 2021-02-12

    Changed

    • Migrated build from Travis CI to GitHub Actions.

    Fixed

    • Errors when bind_tls was set to False.
    • Documentation improvements.
    Commits
    • 1732edc Run build nightly to validate.
    • ce04152 Badge updates.
    • e6560b7 Adding reference to ngrok auth token secrets.
    • 99fb809 Changelog update.
    • 72530f8 GitHub action improvements (#79)
    • a86ac00 Migrate Travis to GitHub Actions (#78)
    • 612ec93 Adding release date to 5.0.2.
    • 908a077 Version bump.
    • bd00847 Documentation clarity on HTTPS tunnels.
    • 9b82be5 Fixed errors when bind_tls was set to False. Updated documentation to add...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump pytz from 2020.4 to 2020.5

    Bump pytz from 2020.4 to 2020.5

    Bumps pytz from 2020.4 to 2020.5.

    Commits
    • 76ed158 2020.5 / 2020e release
    • b83f879 IANA 2020e
    • aaef58a Squashed 'tz/' changes from 9c175ec6c..a816a5c4d
    • 6cf10f2 Drop Python 3.0 support from distribution metadata
    • 7d0205f List Py3.9 support in distribution metadata
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump psutil from 5.7.3 to 5.8.0

    Bump psutil from 5.7.3 to 5.8.0

    Bumps psutil from 5.7.3 to 5.8.0.

    Changelog

    Sourced from psutil's changelog.

    5.8.0

    2020-12-19

    Enhancements

    • 1863_: disk_partitions() exposes 2 extra fields: maxfile and maxpath, which are the maximum file name and path name length.
    • 1872_: [Windows] added support for PyPy 2.7.
    • 1879_: provide pre-compiled wheels for Linux and macOS (yey!).
    • 1880_: get rid of Travis and Cirrus CI services (they are no longer free). CI testing is now done by GitHub Actions on Linux, macOS and FreeBSD (yes). AppVeyor is still being used for Windows CI.

    Bug fixes

    • 1708_: [Linux] get rid of sensors_temperatures() duplicates. (patch by Tim Schlueter).
    • 1839_: [Windows] always raise AccessDenied when failing to query 64 processes from 32 bit ones (NtWoW64 APIs).
    • 1866_: [Windows] process exe(), cmdline(), environ() may raise "invalid access to memory location" on Python 3.9.
    • 1874_: [Solaris] wrong swap output given when encrypted column is present.
    • 1875_: [Windows] process username() may raise ERROR_NONE_MAPPED if the SID has no corresponding account name. In this case AccessDenied is now raised.
    • 1877_: [Windows] OpenProcess may fail with ERROR_SUCCESS. Turn it into AccessDenied or NoSuchProcess depending on whether the PID is alive.
    • 1886_: [macOS] EIO error may be raised on cmdline() and environment(). Now it gets translated into AccessDenied.
    • 1891_: [macOS] get rid of deprecated getpagesize().
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump pyngrok from 4.1.13 to 4.2.2

    Bump pyngrok from 4.1.13 to 4.2.2

    Bumps pyngrok from 4.1.13 to 4.2.2.

    Release notes

    Sourced from pyngrok's releases.

    4.2.2

    The next release, 5.0.0, contains breaking changes, including dropping support for Python 2.7. 4.2.x is meant to ease migration between 4.1.x and 5.0.0 and should not be pinned, as it will not be supported after 5.0.0 is released. To prepare for these breaking changes, see the changelog below. To avoid these breaking changes altogether, or if Python 2.7 support is still needed, pin pyngrok>=4.1,<4.2.

    Added

    • ngrok.connect() replaced options with kwargs, maintained backwards compatibility. Support for passing options as a dict will be removed in 5.0.0, unpack the dict as kwargs.
    • ngrok.connect() added return_ngrok_tunnel to its args, which defaults to False for backwards compatibility. This will default to True in 5.0.0, and the flag will be removed.
    • conf.get_default(), replacing the need to directly reference conf.DEFAULT_PYNGROK_CONFIG, which will be removed in 5.0.0.

    4.1.16

    Added

    • ngrok.get_version() to get ngrok and pyngrok versions in a tuple.
    • refresh_metrics() to NgrokTunnel.
    • Documentation improvements.
    • Logging improvements.
    Changelog

    Sourced from pyngrok's changelog.

    4.2.2 - 2020-10-12

    The next release, 5.0.0, contains breaking changes, including dropping support for Python 2.7. 4.2.x is meant to ease migration between 4.1.x and 5.0.0 and should not be pinned, as it will not be supported after 5.0.0 is released. To prepare for these breaking changes, see the changelog below. To avoid these breaking changes altogether, or if Python 2.7 support is still needed, pin pyngrok>=4.1,<4.2.

    Added

    • ngrok.connect() replaced options with kwargs, maintained backwards compatibility. Support for passing options as a dict will be removed in 5.0.0, unpack the dict as kwargs.
    • ngrok.connect() added return_ngrok_tunnel to its args, which defaults to False for backwards compatibility. This will default to True in 5.0.0, and the flag will be removed.
    • conf.get_default(), replacing the need to directly reference conf.DEFAULT_PYNGROK_CONFIG, which will be removed in 5.0.0.

    4.1.16 - 2020-10-12

    Added

    • ngrok.get_version() to get ngrok and pyngrok versions in a tuple.
    • refresh_metrics() to NgrokTunnel.
    • Documentation improvements.
    • Logging improvements.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump pyngrok from 4.1.13 to 4.2.1

    Bump pyngrok from 4.1.13 to 4.2.1

    Bumps pyngrok from 4.1.13 to 4.2.1.

    Release notes

    Sourced from pyngrok's releases.

    4.2.1

    The next release, 5.0.0, contains breaking changes, including dropping support for Python 2.7. 4.2.x is meant to ease migration between 4.1.x and 5.0.0 and should not be pinned, as it will not be supported after 5.0.0 is released. To prepare for these breaking changes, see the changelog below. To avoid these breaking changes altogether, or if Python 2.7 support is still needed, pin pyngrok>=4.1,<4.2.

    Added

    • ngrok.connect() replaced options with kwargs, maintained backwards compatibility. Support for passing options as a dict will be removed in 5.0.0, unpack the dict as kwargs.
    • ngrok.connect() added return_ngrok_tunnel to its args, which defaults to False for backwards compatibility. This will default to True in 5.0.0, and the flag will be removed.
    • conf.get_default(), replacing the need to directly reference conf.DEFAULT_PYNGROK_CONFIG, which will be removed in 5.0.0.

    4.1.15

    Added

    • refresh_metrics() to NgrokTunnel.
    • Documentation improvements.
    • Logging improvements.
    Changelog

    Sourced from pyngrok's changelog.

    4.2.1 - 2020-10-11

    The next release, 5.0.0, contains breaking changes, including dropping support for Python 2.7. 4.2.x is meant to ease migration between 4.1.x and 5.0.0 and should not be pinned, as it will not be supported after 5.0.0 is released. To prepare for these breaking changes, see the changelog below. To avoid these breaking changes altogether, or if Python 2.7 support is still needed, pin pyngrok>=4.1,<4.2.

    Added

    • ngrok.connect() replaced options with kwargs, maintained backwards compatibility. Support for passing options as a dict will be removed in 5.0.0, unpack the dict as kwargs.
    • ngrok.connect() added return_ngrok_tunnel to its args, which defaults to False for backwards compatibility. This will default to True in 5.0.0, and the flag will be removed.
    • conf.get_default(), replacing the need to directly reference conf.DEFAULT_PYNGROK_CONFIG, which will be removed in 5.0.0.

    4.1.15 - 2020-10-11

    Added

    • refresh_metrics() to NgrokTunnel.
    • Documentation improvements.
    • Logging improvements.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump pyngrok from 4.1.3 to 4.1.4

    Bump pyngrok from 4.1.3 to 4.1.4

    Bumps pyngrok from 4.1.3 to 4.1.4.

    Changelog

    Sourced from pyngrok's changelog.

    4.1.4 - 2020-07-05

    Fixed

    • Inconsistent support for a local directory (ex. file:///) being passed as ngrok.connect()'s port. This is valid, and ngrok will use its built-in fileserver for the tunnel.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump codecov from 2.0.22 to 2.1.4

    Bump codecov from 2.0.22 to 2.1.4

    Bumps codecov from 2.0.22 to 2.1.4.

    Changelog

    Sourced from codecov's changelog.

    2.1.4

    • #260 Enforce black formatting
    • #169 Fix command line quoting on Windows
    • #216 Fix GitLab CI project directory detection on Windows
    • #264 Fix GitLab CI post version 9
    • #262 Check text for NoneType on writes
    • #266 Include the cacert in the PUT call when uploading to S3
    • #263 Fixed gcov not being found in certain instances

    2.1.3

    • Fix find command not working on Windows
    • Add support for gzipping reports
    • Dynamic syncing of version

    2.1.1

    • Fix command when neither hg or git are not available

    2.1.0

    • Remove x-amz-acl header
    • Reformat with Black
    Commits
    • 658ddfd bump version (#269)
    • 7f98a41 Update readme with 400 error info (#268)
    • 9830120 Fixed gcov not found due to passing cmd string instead of list to try_to_run....
    • 1c0e078 Include the cacert in the PUT call when uploading to S3 (#266)
    • 53becf4 Check to see that text is not None before calling replace in write(). (#262)
    • fd64abc failing on GitLab ≥ 9 (bis) (#264)
    • 84048cd Fixed GitLab CI project directory detection on Windows. (#216)
    • 4ec70db Fix command line quoting for Windows (#169)
    • 6ba8cbc Merge pull request #260 from codecov/black-linting
    • 098c82b Only install on 3.7 because pypy is 3.6 and uses typed-ast
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump icalendar from 4.0.3 to 4.0.6

    Bump icalendar from 4.0.3 to 4.0.6

    Bumps icalendar from 4.0.3 to 4.0.6.

    Changelog

    Sourced from icalendar's changelog.

    4.0.6 (2020-05-06)

    Bug fixes:

    • Use vText as default type, when convert recurrence definition to ical string. [kam193]

    4.0.5 (2020-03-21)

    Bug fixes:

    • Fixed a docs issue related to building on Read the Docs [davidfischer]

    4.0.4 (2019-11-25)

    Bug fixes:

    • Reduce Hypothesis iterations to speed up testing, allowing PRs to pass [UniversalSuperBox]
    Commits
    • 3d38ca7 Preparing release 4.0.6
    • 4aa5b2a Cleaned up empty headers from changelog.
    • 54dd0d0 Merge pull request #311 from collective/check-python-versions
    • ce85c6d Add test runs on Python 3.7 and 3.8.
    • 14ff684 Merge pull request #310 from kam193/master
    • 8119391 Fix incorrect CHANGELOG entry
    • c5f5602 Merge pull request #299 from kam193/master
    • 3258ea9 Back to development: 4.0.6
    • 325501d Preparing release 4.0.5
    • b5250c8 Cleaned up empty headers from changelog.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

    You can always request more updates by clicking Bump now in your Dependabot dashboard.

    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • For /status endpoint

    For /status endpoint "TaskProcessing", also verify "celerybeat" process is running and healthy

    Otherwise the status endpoint may give a false positive that supervisor is running (which it may be, but periodic processing, like text reminders, may not be working properly).

    enhancement 
    opened by alexdlaird 0
  • Add `retry` support for `send_text` and `send_multipart_email`

    Add `retry` support for `send_text` and `send_multipart_email`

    It may also be worth looking in to the fact that reminder.sent is set to True before either of these async functions are called, so if they fail, the reminder won't be retried at the DB level.

    • [ ] send_text retry with backoff
    • [ ] send_multipart_email retry with backoff
    enhancement help wanted good first issue 
    opened by alexdlaird 0
  • Add ICAL Support to

    Add ICAL Support to "Import"

    A single import would need to then be tied to a single course, so if an entire schedule was being imported from ICALs, there would need to be one per course.

    enhancement help wanted good first issue 
    opened by alexdlaird 0
  • As a User, I want to be able to delete all Events and start fresh

    As a User, I want to be able to delete all Events and start fresh

    This feature would require both an API endpoint to clear events as well as a frontend UI component, probably in /settings. Likely not going to be implemented until the new UI is being built.

    • [x] Endpoint
    • [ ] UI
    good first issue story 
    opened by alexdlaird 0
  • As a User, I want to be able to make local changes to homework from ExternalCalendars

    As a User, I want to be able to make local changes to homework from ExternalCalendars

    Currently, Homework can only be tied to a Course. This should be refactored to be similar to Event with an "owner_id" and a type, and the type might be an external source (for instance, Google Classroom). Then, on a periodic basis, a resync should happen to ensure the local Homework are up to date with those from the ExternalCalendar's source.

    enhancement 
    opened by alexdlaird 0
  • As a User, I want to be able to see and manage grades for Google Classroom and other sources classes in Helium

    As a User, I want to be able to see and manage grades for Google Classroom and other sources classes in Helium

    Prior to this ticket being completed, #89 and #95 should be completed so external events and homework are stored locally ad periodically updated.

    Once those are complete, the homework model should be similarly refactored. One "parent" of a homework is an internal course, but other "parents" may be external calendars as well—the different between an event and a homework primarily being that a homework has an expectation of being graded and is thus attached to a class (even if external), whereas an event has no such metadata.

    For example, then, a homework model in the future may have a "course" with an internal ID, or a "course" associated with "classroom" (or "blackboard" or some other third party), and the ID of the course is then determined by the external service.

    Like with events, homework would be lazily cached locally, updated periodically, allowing users to allow the external service (Google Classroom in this first case) to be the source of truth for most information, but additional information (for instance, grading) can be provided to the item within Helium.

    Additional integrations should be evaluated:

    • [ ] Edmodo
    • [ ] Moodle
    • [ ] Blackboard
    • [ ] Schoology
    enhancement help wanted story 
    opened by alexdlaird 0
A handy tool for generating Django-based backend projects without coding. On the other hand, it is a code generator of the Django framework.

Django Sage Painless The django-sage-painless is a valuable package based on Django Web Framework & Django Rest Framework for high-level and rapid web

sageteam 51 Sep 15, 2022
Intellicards-backend - A Django project bootstrapped with django-admin startproject mysite

Intellicards-backend - A Django project bootstrapped with django-admin startproject mysite

Fabrizio Torrico 2 Jan 13, 2022
A starter template for building a backend with Django and django-rest-framework using docker with PostgreSQL as the primary DB.

Django-Rest-Template! This is a basic starter template for a backend project with Django as the server and PostgreSQL as the database. About the templ

Akshat Sharma 11 Dec 6, 2022
Full featured redis cache backend for Django.

Redis cache backend for Django This is a Jazzband project. By contributing you agree to abide by the Contributor Code of Conduct and follow the guidel

Jazzband 2.5k Jan 3, 2023
A Redis cache backend for django

Redis Django Cache Backend A Redis cache backend for Django Docs can be found at http://django-redis-cache.readthedocs.org/en/latest/. Changelog 3.0.0

Sean Bleier 1k Dec 15, 2022
this is a simple backend for instagram with python and django

simple_instagram_backend this is a simple backend for instagram with python and django it has simple realations and api in 4 diffrent apps: 1-users: a

null 2 Oct 20, 2021
Backend with Django .

BackendCode - Cookies Documentation: https://docs.djangoproject.com/fr/3.2/intro/ By @tcotidiane33 & @yaya Models Premium class Pack(models.Model): n

just to do it 1 Jan 28, 2022
Django-environ allows you to utilize 12factor inspired environment variables to configure your Django application.

Django-environ django-environ allows you to use Twelve-factor methodology to configure your Django application with environment variables. import envi

Daniele Faraglia 2.7k Jan 7, 2023
Rosetta is a Django application that eases the translation process of your Django projects

Rosetta Rosetta is a Django application that facilitates the translation process of your Django projects. Because it doesn't export any models, Rosett

Marco Bonetti 909 Dec 26, 2022
django-dashing is a customisable, modular dashboard application framework for Django to visualize interesting data about your project. Inspired in the dashboard framework Dashing

django-dashing django-dashing is a customisable, modular dashboard application framework for Django to visualize interesting data about your project.

talPor Solutions 703 Dec 22, 2022
Django-Audiofield is a simple app that allows Audio files upload, management and conversion to different audio format (mp3, wav & ogg), which also makes it easy to play audio files into your Django application.

Django-Audiofield Description: Django Audio Management Tools Maintainer: Areski Contributors: list of contributors Django-Audiofield is a simple app t

Areski Belaid 167 Nov 10, 2022
django Filer is a file management application for django that makes handling of files and images a breeze.

django Filer is a file management application for django that makes handling of files and images a breeze.

django CMS Association 1.6k Jan 6, 2023
Django URL Shortener is a Django app to to include URL Shortening feature in your Django Project

Django URL Shortener Django URL Shortener is a Django app to to include URL Shortening feature in your Django Project Install this package to your Dja

Rishav Sinha 4 Nov 18, 2021
Django application and library for importing and exporting data with admin integration.

django-import-export django-import-export is a Django application and library for importing and exporting data with included admin integration. Featur

null 2.6k Dec 26, 2022
A Django application that provides country choices for use with forms, flag icons static files, and a country field for models.

Django Countries A Django application that provides country choices for use with forms, flag icons static files, and a country field for models. Insta

Chris Beaven 1.2k Jan 7, 2023
Simple yet powerful and really extendable application for managing a blog within your Django Web site.

Django Blog Zinnia Simple yet powerful and really extendable application for managing a blog within your Django Web site. Zinnia has been made for pub

Julien Fache 2.1k Dec 24, 2022
A pluggable Django application for integrating PayPal Payments Standard or Payments Pro

Django PayPal Django PayPal is a pluggable application that integrates with PayPal Payments Standard and Payments Pro. See https://django-paypal.readt

Luke Plant 672 Dec 22, 2022
Full-text multi-table search application for Django. Easy to install and use, with good performance.

django-watson django-watson is a fast multi-model full-text search plugin for Django. It is easy to install and use, and provides high quality search

Dave Hall 1.1k Dec 22, 2022
Use Database URLs in your Django Application.

DJ-Database-URL This simple Django utility allows you to utilize the 12factor inspired DATABASE_URL environment variable to configure your Django appl

Jacob Kaplan-Moss 1.3k Dec 30, 2022