Skip to main content

HOPE FlexFields

Test Lint codecov Documentation PyPI

This library provides the ability to define a set of fields and related validation rules dynamically. It has been designed as part of the HOPE project to manage user-customizable fields (FlexField). The idea is to have a central business logic repository for data import validation.

It provides four classes:

  • FieldDefinition: This represents a collection of reusable pre-configured fields
  • FlexField: Instance like representation of FieldDefinition inside a Fieldset
  • Fieldset: Group of FlexField
  • DataChecker: Compound of fieldset

From the design point of view a high level comparison with Django components could be:

  • FieldDefinition = class forms.Field
  • Fieldset = forms.Form
  • FlexField = forms.Field()
  • DataChecker = [forms.Form(),...]

... and some utilities

classDiagram
    class AbstractField
    class FieldDefinition
    class FlexField
    class Fieldset
    class DataChecker
    AbstractField <|-- FlexField
    AbstractField <|-- FieldDefinition
    Fieldset *-- FlexField
    FlexField --> FieldDefinition
    DataChecker o-- Fieldset

Install

CSP_SCRIPT_SRC = [
    ...
    "cdnjs.cloudflare.com",
]

INSTALLED_APPS = [
    ...
    'admin_extra_buttons',
    'jsoneditor',
    'hope_flex_fields',

]

Demo Application

pip install -e .
python manage.py migrate
python manage.py demo
python manage.py runserver

Demo Application with UV

uv venv
uv sync
uv run pip install -e .
uv run python manage.py migrate
uv run python manage.py demo
uv run python manage.py runserver

Navigate to http://localhost:8000/admin/ and login using any username/password

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hope_flex_fields-0.8.5.tar.gz (237.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hope_flex_fields-0.8.5-py3-none-any.whl (279.3 kB view details)

Uploaded Python 3

File details

Details for the file hope_flex_fields-0.8.5.tar.gz.

File metadata

  • Download URL: hope_flex_fields-0.8.5.tar.gz
  • Upload date:
  • Size: 237.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for hope_flex_fields-0.8.5.tar.gz
Algorithm Hash digest
SHA256 cdd1c7e821d76c79cf2b8d6188614e53eb946bb892dde0cc8385bfbdb1faf409
MD5 42b531eb38a77babde7590a2191cf7ce
BLAKE2b-256 67e12c1c86ef28d3c46c98a15be6477a0e27d3ba534b12cd64c4aa2c0247da19

See more details on using hashes here.

Provenance

The following attestation bundles were made for hope_flex_fields-0.8.5.tar.gz:

Publisher: release.yml on unicef/hope-flex-fields

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hope_flex_fields-0.8.5-py3-none-any.whl.

File metadata

File hashes

Hashes for hope_flex_fields-0.8.5-py3-none-any.whl
Algorithm Hash digest
SHA256 7d67be656033c011c6c80426e88cd71981003154383a930716173b55c2158c60
MD5 9cb72a5c932fd1b44f6f2f05d0b33b2f
BLAKE2b-256 fa0ff6f10abdf3d17d86e603bb923b71f76fc5365bb01becd7298bbade769497

See more details on using hashes here.

Provenance

The following attestation bundles were made for hope_flex_fields-0.8.5-py3-none-any.whl:

Publisher: release.yml on unicef/hope-flex-fields

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.9.1

2 files

This release

0.8.5 This release

2 files

0.8.1

2 files

0.7.7

2 files

0.7.6

2 files

0.7.5

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.3

2 files

0.6.2

1 file

0.6.1

2 files

0.6.0

1 file

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page