wagtail-dynamic-dropdown


Namewagtail-dynamic-dropdown JSON
Version 0.0.5 PyPI version JSON
download
home_pagehttps://github.com/LilJack118/wagtail-dynamic-dropdown
SummaryNone
upload_time2024-10-02 16:13:39
maintainerNone
docs_urlNone
authorLilJack118
requires_pythonNone
licenseNone
keywords wagtail django
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Wagtail Dynamic Dropdown
========================

A Django application which allow to use dynamically defined choices that
will be updated every time the user opens edit/create page. Moreover,
the choices are not migrated to the database.

Install
-------

::

   pip install wagtail-dynamic-dropdown

Then add ``wagtail_dynamic_dropdown`` to your installed apps:

::

   INSTALLED_APPS = [
       ...
       'wagtail_dynamic_dropdown'
   ]

Usage
-----

###1. Define function that will return choices

.. code:: python

   def dynamic_choices():
          """
          Choices creation logic
          """
          return choices

This function should return iterable which contains list of touples.
Example of valid choices:

.. code:: python

   choices = (
       ('choice_1','label_1'),
       ('choice_2','label_2')
   )

###2. Use your function with DynamicDropdownPanel

In your model create CharField field. Then pass its name and path to
choice function as arguments in DynamicDropdownPanel

.. code:: python

   from wagtail_dynamic_dropdown.edit_handlers import DynamicDropdownPanel

   class MyModel():
       ...
       my_dynamic_choices = models.CharField(max_length=255, blank=True,null=True)

       content_panels = [
           DynamicDropdownPanel("my_dynamic_choices", "app_name.folder_name.file_name.function_name")
           ]

Or, instead of defining a function path, you can import it and pass it
as an argument

.. code:: python

   from wagtail_dynamic_dropdown.edit_handlers import DynamicDropdownPanel
   from app_name.folder_name.file_name import function_name

   class MyModel():
       ...
       my_dynamic_choices = models.CharField(max_length=255, blank=True,null=True)

       content_panels = [
           DynamicDropdownPanel("my_dynamic_choices", function_name)
           ]

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/LilJack118/wagtail-dynamic-dropdown",
    "name": "wagtail-dynamic-dropdown",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "wagtail django",
    "author": "LilJack118",
    "author_email": "jakub@kachange.com",
    "download_url": "https://files.pythonhosted.org/packages/4a/55/7902648bfe594e014f424271a4672b1b358a5598876a1a36c1db56a01d24/wagtail-dynamic-dropdown-0.0.5.tar.gz",
    "platform": null,
    "description": "Wagtail Dynamic Dropdown\n========================\n\nA Django application which allow to use dynamically defined choices that\nwill be updated every time the user opens edit/create page. Moreover,\nthe choices are not migrated to the database.\n\nInstall\n-------\n\n::\n\n   pip install wagtail-dynamic-dropdown\n\nThen add ``wagtail_dynamic_dropdown`` to your installed apps:\n\n::\n\n   INSTALLED_APPS = [\n       ...\n       'wagtail_dynamic_dropdown'\n   ]\n\nUsage\n-----\n\n###1. Define function that will return choices\n\n.. code:: python\n\n   def dynamic_choices():\n          \"\"\"\n          Choices creation logic\n          \"\"\"\n          return choices\n\nThis function should return iterable which contains list of touples.\nExample of valid choices:\n\n.. code:: python\n\n   choices = (\n       ('choice_1','label_1'),\n       ('choice_2','label_2')\n   )\n\n###2. Use your function with DynamicDropdownPanel\n\nIn your model create CharField field. Then pass its name and path to\nchoice function as arguments in DynamicDropdownPanel\n\n.. code:: python\n\n   from wagtail_dynamic_dropdown.edit_handlers import DynamicDropdownPanel\n\n   class MyModel():\n       ...\n       my_dynamic_choices = models.CharField(max_length=255, blank=True,null=True)\n\n       content_panels = [\n           DynamicDropdownPanel(\"my_dynamic_choices\", \"app_name.folder_name.file_name.function_name\")\n           ]\n\nOr, instead of defining a function path, you can import it and pass it\nas an argument\n\n.. code:: python\n\n   from wagtail_dynamic_dropdown.edit_handlers import DynamicDropdownPanel\n   from app_name.folder_name.file_name import function_name\n\n   class MyModel():\n       ...\n       my_dynamic_choices = models.CharField(max_length=255, blank=True,null=True)\n\n       content_panels = [\n           DynamicDropdownPanel(\"my_dynamic_choices\", function_name)\n           ]\n",
    "bugtrack_url": null,
    "license": null,
    "summary": null,
    "version": "0.0.5",
    "project_urls": {
        "Bug Tracker": "https://github.com/LilJack118/wagtail-dynamic-dropdown/issues",
        "Homepage": "https://github.com/LilJack118/wagtail-dynamic-dropdown"
    },
    "split_keywords": [
        "wagtail",
        "django"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4a557902648bfe594e014f424271a4672b1b358a5598876a1a36c1db56a01d24",
                "md5": "0e31b2c7e80597f58738fc28f3c3b51a",
                "sha256": "3d18e405afeefacc9b9b908ad72919c8482a8973ebc6c8243bcdb786888d4c0a"
            },
            "downloads": -1,
            "filename": "wagtail-dynamic-dropdown-0.0.5.tar.gz",
            "has_sig": false,
            "md5_digest": "0e31b2c7e80597f58738fc28f3c3b51a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 10105,
            "upload_time": "2024-10-02T16:13:39",
            "upload_time_iso_8601": "2024-10-02T16:13:39.017885Z",
            "url": "https://files.pythonhosted.org/packages/4a/55/7902648bfe594e014f424271a4672b1b358a5598876a1a36c1db56a01d24/wagtail-dynamic-dropdown-0.0.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-02 16:13:39",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "LilJack118",
    "github_project": "wagtail-dynamic-dropdown",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "wagtail-dynamic-dropdown"
}
        
Elapsed time: 5.02486s