semvec/pypi-packages huggingface dataset:
django_choices_flow 0.9.3
Simple library with flow in choices values for Django
License: FREEBSD
Keywords: django,choices,field,flow,choicesfield,control

django-choices-flow
===================

Meta Choice with simple flow and rules

|Build Status| |Coverage Status|

Usage
-----

.. code:: python

    from django.db import models
    from django_choices_flow import Choices
    from django_choices_flow.models import FlowIntegerField


    class MyChoices(Choices):
        NEW = 1, 'New content' # 'New content' is the display text
        WAIT = 2, 'Wait'
        CANCELED = -1, 'Canceled'
        ERROR = -2, 'Error'
        INVOICED = 3, 'Invoiced'

        # set transaction rules
        NEW_RULES = [NEW, INVOICED, CANCELED, ERROR]
        WAIT_RULES = [CANCELED, ERROR, INVOICED]
        INVOICED_RULES = [CANCELED]


    class Invoces(models.Model):
        """
        To use only choices
        """
        number = models.IntegerField()
        status = models.IntegerField(choices=MyChoices, default=MyChoices.NEW)

        def __unicode__(self):
            return self.number


    class FlowInvoice(models.Model):
        """
        To validate flow in choices
        """
        number = models.IntegerField()
        status = FlowIntegerField(choices=MyChoices, default=MyChoices.NEW)

        def __unicode__(self):
            return self.number

Shell
~~~~~

.. code:: python

    >>> flow = FlowInvoice.objects.create(number=1234)
    >>> flow.status
    1
    >>> flow.status = MyChoices.INVOICED
    >>> flow.full_clean()
    >>> flow.save()
    >>> flow.status
    3
    >>> flow.status = MyChoices.WAIT
    >>> flow.full_clean()
    ValidationError: {'status': [u'Invalid choice: Wait']}

Developer
---------

.. code:: bash

    # download code
    git clone git@github.com:valdergallo/django-choices-flow.git

    # install developer packages
    make

    # check coverage
    make coverage

    # test project
    make test

    #clean extra content
    make clean

    #send package
    make send_package

    #test py2 and py3
    tox

--------------

::

    License type: FREEBSD
    South: Support migrations
    Python: python 2.7 and python 3.3
    Version: 0.9.2
    Tested in Django: 1.2.x; 1.3.x; 1.4.x; 1.5.x; 1.6.x; 1.7.x

.. |Build Status| image:: https://travis-ci.org/valdergallo/django-choices-flow.png?branch=master
   :target: https://travis-ci.org/valdergallo/django-choices-flow
.. |Coverage Status| image:: https://coveralls.io/repos/valdergallo/django-choices-flow/badge.png
   :target: https://coveralls.io/r/valdergallo/django-choices-flow