cookiecutter-openedx-plugin


Namecookiecutter-openedx-plugin JSON
Version 0.1.3 PyPI version JSON
download
home_pagehttps://github.com/cookiecutter-openedx/cookiecutter-openedx-plugin
SummaryAn open edx plugin that implements customizations for deployment to Kubernetes
upload_time2023-04-10 18:09:23
maintainer
docs_urlNone
authorLawrence McDaniel
requires_python>=3.8
licenseAGPLv3
keywords python django open edx plugin
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Cookiecutter Open edX Plugin

[![Source code](https://img.shields.io/static/v1?logo=github&label=Git&style=flat-square&color=brightgreen&message=Source%20code)](https://github.com/cookiecutter-openedx/cookiecutter-openedx-plugin)
[![Forums](https://img.shields.io/static/v1?logo=discourse&label=Forums&style=flat-square&color=000000&message=discuss.openedx.org)](https://discuss.openedx.org/tag/cookiecutter)
[![Documentation](https://img.shields.io/static/v1?&label=Documentation&style=flat-square&color=000000&message=Documentation)](https://github.com/cookiecutter-openedx/cookiecutter-openedx-plugin)
[![PyPI releases](https://img.shields.io/pypi/v/cookiecutter-openedx-plugin?logo=python&logoColor=white)](https://pypi.org/project/cookiecutter-openedx-plugin)
[![AGPL License](https://img.shields.io/github/license/overhangio/tutor.svg?style=flat-square)](https://www.gnu.org/licenses/agpl-3.0.en.html)
[![hack.d Lawrence McDaniel](https://img.shields.io/badge/hack.d-Lawrence%20McDaniel-orange.svg)](https://lawrencemcdaniel.com)

An [Open edX Plugin](https://blog.lawrencemcdaniel.com/getting-started-with-open-edx-plugin-architecture/) that implements customizations for deployment to [Kubernetes](https://kubernetes.io/). Implements the following:

- Hooks for openedx Django Signals for 'user_logged_in', 'user_logged_out', 'register_user', 'course_enrollment_created', 'certificate_created' and more. Demonstrates both the legacy, and the newer methodology for subscribing to and listening for the signals.
- Scaffolding for waffle flag setup, including Django model initializations. These are currently only used to enable Django Signals.
- A [custom badges backend](https://github.com/openedx/edx-platform/tree/master/lms/djangoapps/badges/backends) that is compatible with [django-storages backend for Amazon S3](https://django-storages.readthedocs.io/en/latest/backends/amazon-S3.html)

## Getting Started

### Install using Tutor

See [Installing extra xblocks and requirements](https://docs.tutor.overhang.io/configuration.html)

```bash
tutor config save       # to ensure that tutor's root folder system has been created

# OPTION 1: install as a PyPi package
echo "cookiecutter-openedx-plugin>=0.1.3" >> "$(tutor config printroot)/env/build/openedx/requirements/private.txt"

# OPTION 2: install as an editable requirement
echo "-e git+https://github.com/cookiecutter-openedx/cookiecutter-openedx-plugin.git" >> "$(tutor config printroot)/env/build/openedx/requirements/private.txt"

cat "$(tutor config printroot)/env/build/openedx/requirements/private.txt"
tutor images build openedx
tutor local quickstart
```

### Install using Cookiecutter Github Actions Workflow

Add the following to your [Cookiecutter Github Actions Build workflow](https://github.com/cookiecutter-openedx/cookiecutter-openedx-devops/blob/main/%7B%7Bcookiecutter.github_repo_name%7D%7D/.github/workflows/build-openedx.yml)

```yaml
      - name: Add cookiecutter-openedx-plugin
        uses: openedx-actions/tutor-plugin-build-openedx-add-requirement
        with:
          pip-package: cookiecutter-openedx-plugin
          pip-package-version: "0.1.3"
```

### Documentation

Documentation is available here: [Documentation](https://github.com/cookiecutter-openedx/cookiecutter-openedx-plugin)

### Support

To get community support, go to the official Open edX discussion forum: [https://discuss.openedx.org](https://discuss.openedx.org).

### Contributing

We welcome contributions! cookiecutter-openedx-plugin is part of the [cookiecutter-openedx](https://github.com/cookiecutter-openedx) project. Pull requests are welcome in all repos belonging to this organization. You can also contact [Lawrence McDaniel](https://lawrencemcdaniel.com/contact) directly.

### Getting Started With Local development

- Use the same virtual environment that you use for edx-platform
- Ensure that your Python interpreter to 3.8x
- install black: <https://pypi.org/project/black/>
- install flake8: <https://flake8.pycqa.org/en/latest/>
- install flake8-coding: <https://pypi.org/project/flake8-coding/>

```bash
# Run these from within your edx-platform virtual environment
python3 -m venv venv
source venv/bin/activate

cd /path/to/edx-platform
pip install -r requirements/edx/base.txt
pip install -r requirements/edx/coverage.txt
pip install -r requirements/edx/development.txt
pip install -r requirements/edx/pip-tools.txt
pip install -r requirements/edx/testing.txt
pip install -r requirements/edx/doc.txt
pip install -r requirements/edx/paver.txt

pip install pre-commit black flake8
pre-commit install
```

#### Local development good practices

- run `black` on modified code before committing.
- run `flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics`
- run `flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics`
- run `pre-commit run --all-files` before pushing. see: <https://pre-commit.com/>

#### edx-platform dependencies

To avoid freaky version conflicts in prod it's a good idea to install all of the edx-platform requirements to your local dev virtual environment.

- requirements/edx/base.txt
- requirements/edx/develop.txt,
- requirements/edx/testing.txt

At a minimum this will give you the full benefit of your IDE's linter.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/cookiecutter-openedx/cookiecutter-openedx-plugin",
    "name": "cookiecutter-openedx-plugin",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "Python,Django,Open edX,Plugin",
    "author": "Lawrence McDaniel",
    "author_email": "Lawrence McDaniel <lpm0073@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/c9/83/b26e9d01b4ee7949682638f706b40e61a9a9963a330ea754fe8fd7ded745/cookiecutter-openedx-plugin-0.1.3.tar.gz",
    "platform": null,
    "description": "# Cookiecutter Open edX Plugin\n\n[![Source code](https://img.shields.io/static/v1?logo=github&label=Git&style=flat-square&color=brightgreen&message=Source%20code)](https://github.com/cookiecutter-openedx/cookiecutter-openedx-plugin)\n[![Forums](https://img.shields.io/static/v1?logo=discourse&label=Forums&style=flat-square&color=000000&message=discuss.openedx.org)](https://discuss.openedx.org/tag/cookiecutter)\n[![Documentation](https://img.shields.io/static/v1?&label=Documentation&style=flat-square&color=000000&message=Documentation)](https://github.com/cookiecutter-openedx/cookiecutter-openedx-plugin)\n[![PyPI releases](https://img.shields.io/pypi/v/cookiecutter-openedx-plugin?logo=python&logoColor=white)](https://pypi.org/project/cookiecutter-openedx-plugin)\n[![AGPL License](https://img.shields.io/github/license/overhangio/tutor.svg?style=flat-square)](https://www.gnu.org/licenses/agpl-3.0.en.html)\n[![hack.d Lawrence McDaniel](https://img.shields.io/badge/hack.d-Lawrence%20McDaniel-orange.svg)](https://lawrencemcdaniel.com)\n\nAn [Open edX Plugin](https://blog.lawrencemcdaniel.com/getting-started-with-open-edx-plugin-architecture/) that implements customizations for deployment to [Kubernetes](https://kubernetes.io/). Implements the following:\n\n- Hooks for openedx Django Signals for 'user_logged_in', 'user_logged_out', 'register_user', 'course_enrollment_created', 'certificate_created' and more. Demonstrates both the legacy, and the newer methodology for subscribing to and listening for the signals.\n- Scaffolding for waffle flag setup, including Django model initializations. These are currently only used to enable Django Signals.\n- A [custom badges backend](https://github.com/openedx/edx-platform/tree/master/lms/djangoapps/badges/backends) that is compatible with [django-storages backend for Amazon S3](https://django-storages.readthedocs.io/en/latest/backends/amazon-S3.html)\n\n## Getting Started\n\n### Install using Tutor\n\nSee [Installing extra xblocks and requirements](https://docs.tutor.overhang.io/configuration.html)\n\n```bash\ntutor config save       # to ensure that tutor's root folder system has been created\n\n# OPTION 1: install as a PyPi package\necho \"cookiecutter-openedx-plugin>=0.1.3\" >> \"$(tutor config printroot)/env/build/openedx/requirements/private.txt\"\n\n# OPTION 2: install as an editable requirement\necho \"-e git+https://github.com/cookiecutter-openedx/cookiecutter-openedx-plugin.git\" >> \"$(tutor config printroot)/env/build/openedx/requirements/private.txt\"\n\ncat \"$(tutor config printroot)/env/build/openedx/requirements/private.txt\"\ntutor images build openedx\ntutor local quickstart\n```\n\n### Install using Cookiecutter Github Actions Workflow\n\nAdd the following to your [Cookiecutter Github Actions Build workflow](https://github.com/cookiecutter-openedx/cookiecutter-openedx-devops/blob/main/%7B%7Bcookiecutter.github_repo_name%7D%7D/.github/workflows/build-openedx.yml)\n\n```yaml\n      - name: Add cookiecutter-openedx-plugin\n        uses: openedx-actions/tutor-plugin-build-openedx-add-requirement\n        with:\n          pip-package: cookiecutter-openedx-plugin\n          pip-package-version: \"0.1.3\"\n```\n\n### Documentation\n\nDocumentation is available here: [Documentation](https://github.com/cookiecutter-openedx/cookiecutter-openedx-plugin)\n\n### Support\n\nTo get community support, go to the official Open edX discussion forum: [https://discuss.openedx.org](https://discuss.openedx.org).\n\n### Contributing\n\nWe welcome contributions! cookiecutter-openedx-plugin is part of the [cookiecutter-openedx](https://github.com/cookiecutter-openedx) project. Pull requests are welcome in all repos belonging to this organization. You can also contact [Lawrence McDaniel](https://lawrencemcdaniel.com/contact) directly.\n\n### Getting Started With Local development\n\n- Use the same virtual environment that you use for edx-platform\n- Ensure that your Python interpreter to 3.8x\n- install black: <https://pypi.org/project/black/>\n- install flake8: <https://flake8.pycqa.org/en/latest/>\n- install flake8-coding: <https://pypi.org/project/flake8-coding/>\n\n```bash\n# Run these from within your edx-platform virtual environment\npython3 -m venv venv\nsource venv/bin/activate\n\ncd /path/to/edx-platform\npip install -r requirements/edx/base.txt\npip install -r requirements/edx/coverage.txt\npip install -r requirements/edx/development.txt\npip install -r requirements/edx/pip-tools.txt\npip install -r requirements/edx/testing.txt\npip install -r requirements/edx/doc.txt\npip install -r requirements/edx/paver.txt\n\npip install pre-commit black flake8\npre-commit install\n```\n\n#### Local development good practices\n\n- run `black` on modified code before committing.\n- run `flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics`\n- run `flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics`\n- run `pre-commit run --all-files` before pushing. see: <https://pre-commit.com/>\n\n#### edx-platform dependencies\n\nTo avoid freaky version conflicts in prod it's a good idea to install all of the edx-platform requirements to your local dev virtual environment.\n\n- requirements/edx/base.txt\n- requirements/edx/develop.txt,\n- requirements/edx/testing.txt\n\nAt a minimum this will give you the full benefit of your IDE's linter.\n",
    "bugtrack_url": null,
    "license": "AGPLv3",
    "summary": "An open edx plugin that implements customizations for deployment to Kubernetes",
    "version": "0.1.3",
    "split_keywords": [
        "python",
        "django",
        "open edx",
        "plugin"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "aa0c8c346d06865d0e3a4a3c57aec4d0e0dfbc0a625d6a09762be6f6dc3b5356",
                "md5": "088e525150eb97634677b554dd578b1a",
                "sha256": "55ad6d5fc7c8fc93da5f97e5368869e35f5322bc93994f311986a5cb2ce7cb55"
            },
            "downloads": -1,
            "filename": "cookiecutter_openedx_plugin-0.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "088e525150eb97634677b554dd578b1a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 28398,
            "upload_time": "2023-04-10T18:09:22",
            "upload_time_iso_8601": "2023-04-10T18:09:22.274503Z",
            "url": "https://files.pythonhosted.org/packages/aa/0c/8c346d06865d0e3a4a3c57aec4d0e0dfbc0a625d6a09762be6f6dc3b5356/cookiecutter_openedx_plugin-0.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c983b26e9d01b4ee7949682638f706b40e61a9a9963a330ea754fe8fd7ded745",
                "md5": "351f7659eb3dfc61f34b73d04124df6b",
                "sha256": "e1e84ee99b3d6759b258ec6907e844ed6e061986c488d55478f4a3a0baa52963"
            },
            "downloads": -1,
            "filename": "cookiecutter-openedx-plugin-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "351f7659eb3dfc61f34b73d04124df6b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 26873,
            "upload_time": "2023-04-10T18:09:23",
            "upload_time_iso_8601": "2023-04-10T18:09:23.771841Z",
            "url": "https://files.pythonhosted.org/packages/c9/83/b26e9d01b4ee7949682638f706b40e61a9a9963a330ea754fe8fd7ded745/cookiecutter-openedx-plugin-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-10 18:09:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "cookiecutter-openedx",
    "github_project": "cookiecutter-openedx-plugin",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "cookiecutter-openedx-plugin"
}
        
Elapsed time: 0.87823s