Viewflow/turbo
What?
Reusable component library allows to create full-featured business applications in just a few lines of code
Designed to be easily included in any Django project. Ideal for Corporate and Private Deployments.
Why?
1
Meet yesterday's deadline When you have not much choice. Iterate quickly, deliver a working solution from day one
2
Cut development cost. Focus on your business goals, reuse and customize pre-made building blocks.
3
To be sure that everything is feasible. Retain the ability to use all Django and Python features in a low code project
4
Write as little code as possible. Keep your codebase manageable, understandable, and adaptable to new requirements
tips_and_updates
When?
Quick start right now:
pip install django-viewflow
Add into settings.py
INSTALLED_APPS = [
'...',
'viewflow',
]
And follow the quickstart guide
How?
Viewflow helps speed up development process
{% extends 'viewflow/base_page.html' %}
{% block page-toolbar-actions %}
{{ block.super }}
<!-- additional toolbar actions -->
{% endblock %}
{% block page-menu-app %}
{{ block.super }}
<!-- additional sidebar actions -->
{% end block %}
{% block content %}
<!-- page content -->
{% endblock %}
Start immediately
Simple, and beautiful design system already familiar for millions of users
class UserViewset(
ExportViewsetMixin,
DeleteViewMixin,
ModelViewset
):
model = User
create_view_class = CreateUserView
list_columns = ('first_name', 'last_name',)
list_filter_fields = ('is_superuser', )
form_widgets = {
'department': AjaxModelSelect(
lookups=['name__istartswith']
)
}
def get_queryset(self):
return User.objects.exclude(
removed=True
).select_related('groups')
Ready-made and customizable
Class-based composition for views with declaration of behavior in one place
layout = Layout(
Row('first_name', 'last_name'),
Row('email', 'phone'),
FieldSet(
"Card Details",
Row(
Column("card_type", desktop=4),
Column(
"card_holder",
Row(
Span("card_number", desktop=10),
Span("card_ccv2", desktop=2)),
Row("card_exp_month", "card_exp_year"),
desktop=8,
),
),
)
FormSet('addresses', card_desktop=4),
)
Control on layout and logic
Complex data-entry forms without wasting time with HTML or Javascript
class Workflow(flow.Flow):
start = (
flow.Start(start_view)
.Permission("workflow.can_start_request")
.Next(this.approve)
)
approve = (
flow.View(UpdateProcessView.as_view(
fields=['comment'])
)
.Assign(select_random_admin)
.Next(this.process)
)
process = (
celery.Job(process_request)
.Next(this.end)
)
end = flow.End()
Explicitly describe people collaboration
An additional thin architectural layer on top of standard Django Model-ViewTemplate for simple control of dependency logic
Who?
Our happy customers
+100 more
Where?
Viewflow is a tool for developers who sit next to real users. It's well-suited for for a small team of developers working on real-world business automation
Viewflow helps you collaborate with people to get a working solution from day one of development. Deploy and iterate daily with your users. You can choose from a variety of out-of-the-box components or implement custom solutions, all while leveraging the power of Python and Django and maintaining a small code base
Have a question?
Contact Us!
Mikhail Podgurskiy
Software developer
- Came to idea of workflow library when fighting with Workflows GUI in 2004
- Spent 5 years in the banking industry to shoulder-to-shoulder work with business on automation.
- Wrote open sourced django-fsm library to reduce pain of
business apps development at 2010