Skip to main content

No project description provided

Project description

KREDIFLO

Your Image Alt Text

A resuable python django package that can handle state transition in your django application .

Description

  • Finflo is designed to carry on FSM transition on your django application .
  • Your state transition's are made easy with finflo
  • customizable Actions and states with on_flow interchangable
  • Pre installed signature levels for each action

TECHNOLOGY STACK

https://www.python.org/ DJANGO DjangoREST

IMPORTANT LINKS

  1. Documentation
  2. Postman collection

Authors

Prerequisite

  • python
  • Django
  • Django-rest-framework

1. Installation

1.1 Initial setup

  • Install finflo using pip
    pip install finflo
  • In your django application , browse to installed_apps section in settings.py and add this ,
INSTALLED_APPS = [
    'finflo',
    'rest_framework'
]
  • Add this in your settings.py
FINFLO = {
    'WORK_MODEL' : ['MyApp.Model','MyApp2.Model2'],
    'PARTY_MODEL' : [] #optional
}
  • The PARTY_TYPE is optional , if it is not needed you can leave it as blank like this []

  • Navigate to the middleware section in your settings.py and add the finflo middleware

MIDDLEWARE = [
    'finflo.middleware.TransitionUserMiddleware',
]
  • Now add this peice of code in your urls.py
urlpatterns = [
    path('', include('finflo.urls'))
]

1.2 Migrations

  • once all the steps done from the above section 1.1 .
  • now we can apply the migrations for the database using ,
- python manage.py makemigrations
- python manage.py migrate 

1.3 Re-migrate

  • scenario 1 : if any new values is added to the WORK_MODEL
  • example for scenario 1 :
# see 1.1 

FINFLO = {
    'WORK_MODEL' : ['MyApp.Model','MyApp2.Model2','MyApp3.Model3'],
    'PARTY_TYPE' : ['MyApp1.Model1'] 
}

  • In the above 1.1 , you can see MyApp3.Model3 is newly addded
  • Now you can remigrate the database without droping it simply by the below command .
- python manage.py migrate --fake finflo 0001
- python manage.py migrate finflo 0002

Usage

  1. Once your setup is completed , whenever the objects in WORK_MODEL is created , the finflo automatically creates :

    • Transition manager
    • workflowitems
    • workevents
  2. The transition for each model can be carried out with 2 methods:

    1. Navigate to the url : localhost/transition/

      • in the content section use the format as below and POST
      • {"type" : "MyApp.Model" , "action" : "MyAction" , "t_id" : "1"}
    2. In Postman , pass the following key in body as follows

      • t_id (transition_id)
      • type (model_type)
      • action
      • Example
        Screenshot
  3. Some important information for transition are as follows :

    Arguments Data_Type
    type str
    action str
    t_id int
    source str
    interim str
    target str
    from_party str
    to_party str

API URLS

  1. List of all Url's
Api URL's METHOD FORM DATA QUERY_PARAMS
localhost/model/ GET NONE ?type=Model&t_id=1 or
or t_id=1
localhost/transition/ POST action , type , t_id ,
optional : from_party , to_party ,
source , interim , target
NONE
localhost/transition/reset/ POST type , t_id NONE
localhost/action/ GET , POST description , model ,
from_state ,to_state ,
from_party , to_party , stage_required
?action=MYACTION or
?action=MYACTION&?model=Model
localhost/signatures/ GET , POST name , sub_action_name NONE
localhost/party-type/ GET , POST description NONE
localhost/states/ GET , POST description NONE
localhost/workflowitems/ GET NONE NONE
localhost/workevents/ GET NONE NONE

MANUAL TRANSITION

  1. example

        from finflo.transition import FinFlotransition
    
        # create a manual transition 
    
        FinFlotransition(t_id = "some id",type = "example_model",source = "your own state" ,
        interim = "your own state" , target = "your own state" ,
        from_party = "int or str" , to_party =  "int or str" , record_datas = "model_json_data")
        
    

Support

For support, contact

  1. support@venzo.com
  2. anandrajb@venzotechnologies.com

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

finflo-2.0.44.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

finflo-2.0.44-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

Details for the file finflo-2.0.44.tar.gz.

File metadata

  • Download URL: finflo-2.0.44.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for finflo-2.0.44.tar.gz
Algorithm Hash digest
SHA256 daeb3713ebbe2d4f1bdac291874ca40e333cd1f2233432822a3871f4c1b53350
MD5 b79d77c47ba12a1bc884df7d45fefe9e
BLAKE2b-256 b028cee3c871cb07fade3685d33cfcab8365b48a6420690f4af67722c9cd5e61

See more details on using hashes here.

File details

Details for the file finflo-2.0.44-py3-none-any.whl.

File metadata

  • Download URL: finflo-2.0.44-py3-none-any.whl
  • Upload date:
  • Size: 20.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for finflo-2.0.44-py3-none-any.whl
Algorithm Hash digest
SHA256 26af26c4c8da748ff75f22e4884113adf3c6ccdd2477f5145e12037133ff8cc4
MD5 0839e91cff4e6bd0dbc4a8ff97bb672d
BLAKE2b-256 5ac736fb15b662ac5810ed2a0ca8f0e56e236c4e1c2b34ced8e9bbbaaea8ff55

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page