ftw-django-features


Nameftw-django-features JSON
Version 2025.3.1 PyPI version JSON
download
home_pageNone
SummaryA collection of features used in our Django-based web applications.
upload_time2025-10-10 05:52:24
maintainerNone
docs_urlNone
author4teamwork AG
requires_python<4,>=3.12
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # django-features
A collection of fearures used in our Django-based web applications

[Changelog](CHANGELOG.md)

## Installation

``` bash
pip install ftw-django-features
```

## Usage

Add desired app to `INSTALLED_APPS` in your Django project.

Available apps:
```
django_features.system_message
```

## Configuration

If you want to use `django_features`, your base configuration class should inherit from `django_features.settings.BaseConfiguration`.

```
from django_features.settings import BaseConfiguration


class Base(BaseConfiguration):
    ...
```


### System Message

If you want to use `django_features.system_message`, your base configuration class should inherit from `django_features.system_message.settings.SystemMessageConfigurationMixin`.

Then call the super property:

```
@property
def CONSTANCE_CONFIG(self) -> dict:
    config = super().CONSTANCE_CONFIG
    return {**config, ...}

@property
def CONSTANCE_CONFIG_FIELDSETS(self) -> dict:
    config = super().CONSTANCE_CONFIG_FIELDSETS
    return {
        **config,
        ...
    }
```

Add the `django_features.system_message.routers.system_message_router` to your `ROOT_URLCONF`. For example:

```
path("api/", include(system_message_router.urls)),
```

## Development

Installing dependencies, assuming you have poetry installed:

``` bash
poetry install
```

## Release

This package uses towncrier to manage the changelog, and to introduce new changes, a file with a concise title and a brief explanation of what the change accomplishes should be created in the `changes` directory, with a suffix indicating whether the change is a feature, bugfix, or other.

To make a release and publish it to PyPI, the following command can be executed:

``` bash
./bin/release
```

This script utilizes zest.releaser and towncrier to create the release, build the wheel, and publish it to PyPI.

Before running the release command, it is necessary to configure poetry with an access token for PyPI by executing the following command and inserting the token stored in 1password:

``` bash
poetry config pypi-token.pypi <token>
```

The `version` attribute in the `pyproject.toml` file should be updated to the new version before running the release command, because this version will be published to PyPI.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ftw-django-features",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.12",
    "maintainer_email": null,
    "keywords": null,
    "author": "4teamwork AG",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/35/31/4f3fe438df1e072c1c0d113b55e90f80f28775319defd27da81247ae2a80/ftw_django_features-2025.3.1.tar.gz",
    "platform": null,
    "description": "# django-features\nA collection of fearures used in our Django-based web applications\n\n[Changelog](CHANGELOG.md)\n\n## Installation\n\n``` bash\npip install ftw-django-features\n```\n\n## Usage\n\nAdd desired app to `INSTALLED_APPS` in your Django project.\n\nAvailable apps:\n```\ndjango_features.system_message\n```\n\n## Configuration\n\nIf you want to use `django_features`, your base configuration class should inherit from `django_features.settings.BaseConfiguration`.\n\n```\nfrom django_features.settings import BaseConfiguration\n\n\nclass Base(BaseConfiguration):\n    ...\n```\n\n\n### System Message\n\nIf you want to use `django_features.system_message`, your base configuration class should inherit from `django_features.system_message.settings.SystemMessageConfigurationMixin`.\n\nThen call the super property:\n\n```\n@property\ndef CONSTANCE_CONFIG(self) -> dict:\n    config = super().CONSTANCE_CONFIG\n    return {**config, ...}\n\n@property\ndef CONSTANCE_CONFIG_FIELDSETS(self) -> dict:\n    config = super().CONSTANCE_CONFIG_FIELDSETS\n    return {\n        **config,\n        ...\n    }\n```\n\nAdd the `django_features.system_message.routers.system_message_router` to your `ROOT_URLCONF`. For example:\n\n```\npath(\"api/\", include(system_message_router.urls)),\n```\n\n## Development\n\nInstalling dependencies, assuming you have poetry installed:\n\n``` bash\npoetry install\n```\n\n## Release\n\nThis package uses towncrier to manage the changelog, and to introduce new changes, a file with a concise title and a brief explanation of what the change accomplishes should be created in the `changes` directory, with a suffix indicating whether the change is a feature, bugfix, or other.\n\nTo make a release and publish it to PyPI, the following command can be executed:\n\n``` bash\n./bin/release\n```\n\nThis script utilizes zest.releaser and towncrier to create the release, build the wheel, and publish it to PyPI.\n\nBefore running the release command, it is necessary to configure poetry with an access token for PyPI by executing the following command and inserting the token stored in 1password:\n\n``` bash\npoetry config pypi-token.pypi <token>\n```\n\nThe `version` attribute in the `pyproject.toml` file should be updated to the new version before running the release command, because this version will be published to PyPI.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A collection of features used in our Django-based web applications.",
    "version": "2025.3.1",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "93e80daac43fcaaa7d5c269c4d90accfa5cc08c5df08d62bb7f758994ebf5be1",
                "md5": "eab6e03f28ca3043230cf36afb8c0f98",
                "sha256": "6a0918416b2ae1971e1934d43fa347c676bdf6de3a66d14140be0ee1fec9fec6"
            },
            "downloads": -1,
            "filename": "ftw_django_features-2025.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "eab6e03f28ca3043230cf36afb8c0f98",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.12",
            "size": 17103,
            "upload_time": "2025-10-10T05:52:23",
            "upload_time_iso_8601": "2025-10-10T05:52:23.688346Z",
            "url": "https://files.pythonhosted.org/packages/93/e8/0daac43fcaaa7d5c269c4d90accfa5cc08c5df08d62bb7f758994ebf5be1/ftw_django_features-2025.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "35314f3fe438df1e072c1c0d113b55e90f80f28775319defd27da81247ae2a80",
                "md5": "b218d2e5fd90ed0e23bf7eed1731e7ca",
                "sha256": "07cb51bb5f5b49261a4b5f0a4b162a8c53c88f009ee5e12be774efcd968e3393"
            },
            "downloads": -1,
            "filename": "ftw_django_features-2025.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "b218d2e5fd90ed0e23bf7eed1731e7ca",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.12",
            "size": 9483,
            "upload_time": "2025-10-10T05:52:24",
            "upload_time_iso_8601": "2025-10-10T05:52:24.540746Z",
            "url": "https://files.pythonhosted.org/packages/35/31/4f3fe438df1e072c1c0d113b55e90f80f28775319defd27da81247ae2a80/ftw_django_features-2025.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-10 05:52:24",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "ftw-django-features"
}
        
Elapsed time: 1.88878s