Simple library with flow in choices values for Django
Project description
Meta Choice with simple flow and rules
Usage
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
>>> 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
# 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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for django_choices_flow-0.9.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb6eef44be0775469959eed067405356693cece91b813be07352a8545138456b |
|
MD5 | 74f5b34f7a0fbc2a2e9671a9865eda25 |
|
BLAKE2b-256 | 5ce0ba40ab437cb6a3f32f89bb3e06db2d02832ae6e87f13d2f1b4a34f8c0297 |