%global _empty_manifest_terminate_build 0 Name: python-django-automations Version: 0.9.4.1 Release: 1 Summary: Processes and automations for your Django project License: MIT License URL: https://github.com/fsbraun/django-automations Source0: https://mirrors.aliyun.com/pypi/web/packages/0b/ed/97cb4974ce37eda4a8c1818a286e3366a529d9228bca74555113536049e7/django-automations-0.9.4.1.tar.gz BuildArch: noarch Requires: python3-Django %description ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/django-automations) ![PyPI - Django Version](https://img.shields.io/pypi/djversions/django-automations) ![GitHub](https://img.shields.io/github/license/fsbraun/django-automations) [![PyPI](https://img.shields.io/pypi/v/django-automations)](https://pypi.org/project/django-automations/) [![Read the Docs](https://img.shields.io/readthedocs/django-automations)](https://django-automations.readthedocs.io/en/latest/) [![codecov](https://codecov.io/gh/fsbraun/django-automations/branch/master/graph/badge.svg?token=DSA28NEFL9)](https://codecov.io/gh/fsbraun/django-automations) # Django-automations A lightweight framework to collect all processes of your django app in one place. Use cases: * Marketing automations, customer journeys * Simple business processes which require user interactions * Running regular tasks Django-automations works with plain Django but also integrates with Django-CMS. ## Key features * Describe automations as python classes * Bind automations to models from other Django apps * Use Django forms for user interaction * Create transparency through extendable dashboard * Declare automations as unique or unique for a certain data set * Start automations on signals or when, e.g., user visits a page * Send messages between automations ## Requirements * **Python**: 3.7, 3.8, 3.9, 3.10 * **Django**: 3.0, 3.1, 3.2 ## Feedback This project is in a early stage. All feedback is welcome! Please mail me at fsbraun(at)gmx.de # Installation This project will be available on pypi after the first release. In the meantime, please install the master branch from git using pip install https://github.com/fsbraun/django-automations/archive/master.zip After installation add the `automations` to your installed apps in `settings.py`: INSTALLED_APPS = ( ..., 'automations', 'automations.cms_automations', # ONLY IF YOU USE DJANGO-CMS! ) Only include the "sub app" `automations.cms_automations` if you are using Django CMS. The last step is to run the necessary migrations using the `manage.py` command: python manage.py migrate automations # Usage The basic idea is to add an automation layer to Django's model, view, template structure. The automation layer collects in one place all business processes which in a Django app often are distributed across models, views and any glue code. **Automations** consist of **tasks** which are carried out one after another. **Modifiers** affect, e.g. when a task is carried out. from automations import flow from automations.flow import this # "this" can be used in a class definition as a replacement for "self" from . import forms class ProcessInput(Automation): """The process steps are defined by sequentially adding the corresponding nodes""" start = flow.Execute(this.get_user_input) # Collect input a user has supplied check = flow.If( this.does_not_need_approval # Need approval? ).Then(this.process) # No? Continue later approval = flow.Form(forms.ApprovalForm).Group(name="admins") # Let admins approve process = flow.Execute(this.process_input) # Generate output end = flow.End() critical = 10_000 def get_user_input(task_instance): ... def does_not_need_approval(task_instance): return not (task_instance.data['amount'] > self.critical) def process_input(task_instance): ... # Documentation See the [documentation on readthedocs.io](https://django-automations.readthedocs.io/). %package -n python3-django-automations Summary: Processes and automations for your Django project Provides: python-django-automations BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-django-automations ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/django-automations) ![PyPI - Django Version](https://img.shields.io/pypi/djversions/django-automations) ![GitHub](https://img.shields.io/github/license/fsbraun/django-automations) [![PyPI](https://img.shields.io/pypi/v/django-automations)](https://pypi.org/project/django-automations/) [![Read the Docs](https://img.shields.io/readthedocs/django-automations)](https://django-automations.readthedocs.io/en/latest/) [![codecov](https://codecov.io/gh/fsbraun/django-automations/branch/master/graph/badge.svg?token=DSA28NEFL9)](https://codecov.io/gh/fsbraun/django-automations) # Django-automations A lightweight framework to collect all processes of your django app in one place. Use cases: * Marketing automations, customer journeys * Simple business processes which require user interactions * Running regular tasks Django-automations works with plain Django but also integrates with Django-CMS. ## Key features * Describe automations as python classes * Bind automations to models from other Django apps * Use Django forms for user interaction * Create transparency through extendable dashboard * Declare automations as unique or unique for a certain data set * Start automations on signals or when, e.g., user visits a page * Send messages between automations ## Requirements * **Python**: 3.7, 3.8, 3.9, 3.10 * **Django**: 3.0, 3.1, 3.2 ## Feedback This project is in a early stage. All feedback is welcome! Please mail me at fsbraun(at)gmx.de # Installation This project will be available on pypi after the first release. In the meantime, please install the master branch from git using pip install https://github.com/fsbraun/django-automations/archive/master.zip After installation add the `automations` to your installed apps in `settings.py`: INSTALLED_APPS = ( ..., 'automations', 'automations.cms_automations', # ONLY IF YOU USE DJANGO-CMS! ) Only include the "sub app" `automations.cms_automations` if you are using Django CMS. The last step is to run the necessary migrations using the `manage.py` command: python manage.py migrate automations # Usage The basic idea is to add an automation layer to Django's model, view, template structure. The automation layer collects in one place all business processes which in a Django app often are distributed across models, views and any glue code. **Automations** consist of **tasks** which are carried out one after another. **Modifiers** affect, e.g. when a task is carried out. from automations import flow from automations.flow import this # "this" can be used in a class definition as a replacement for "self" from . import forms class ProcessInput(Automation): """The process steps are defined by sequentially adding the corresponding nodes""" start = flow.Execute(this.get_user_input) # Collect input a user has supplied check = flow.If( this.does_not_need_approval # Need approval? ).Then(this.process) # No? Continue later approval = flow.Form(forms.ApprovalForm).Group(name="admins") # Let admins approve process = flow.Execute(this.process_input) # Generate output end = flow.End() critical = 10_000 def get_user_input(task_instance): ... def does_not_need_approval(task_instance): return not (task_instance.data['amount'] > self.critical) def process_input(task_instance): ... # Documentation See the [documentation on readthedocs.io](https://django-automations.readthedocs.io/). %package help Summary: Development documents and examples for django-automations Provides: python3-django-automations-doc %description help ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/django-automations) ![PyPI - Django Version](https://img.shields.io/pypi/djversions/django-automations) ![GitHub](https://img.shields.io/github/license/fsbraun/django-automations) [![PyPI](https://img.shields.io/pypi/v/django-automations)](https://pypi.org/project/django-automations/) [![Read the Docs](https://img.shields.io/readthedocs/django-automations)](https://django-automations.readthedocs.io/en/latest/) [![codecov](https://codecov.io/gh/fsbraun/django-automations/branch/master/graph/badge.svg?token=DSA28NEFL9)](https://codecov.io/gh/fsbraun/django-automations) # Django-automations A lightweight framework to collect all processes of your django app in one place. Use cases: * Marketing automations, customer journeys * Simple business processes which require user interactions * Running regular tasks Django-automations works with plain Django but also integrates with Django-CMS. ## Key features * Describe automations as python classes * Bind automations to models from other Django apps * Use Django forms for user interaction * Create transparency through extendable dashboard * Declare automations as unique or unique for a certain data set * Start automations on signals or when, e.g., user visits a page * Send messages between automations ## Requirements * **Python**: 3.7, 3.8, 3.9, 3.10 * **Django**: 3.0, 3.1, 3.2 ## Feedback This project is in a early stage. All feedback is welcome! Please mail me at fsbraun(at)gmx.de # Installation This project will be available on pypi after the first release. In the meantime, please install the master branch from git using pip install https://github.com/fsbraun/django-automations/archive/master.zip After installation add the `automations` to your installed apps in `settings.py`: INSTALLED_APPS = ( ..., 'automations', 'automations.cms_automations', # ONLY IF YOU USE DJANGO-CMS! ) Only include the "sub app" `automations.cms_automations` if you are using Django CMS. The last step is to run the necessary migrations using the `manage.py` command: python manage.py migrate automations # Usage The basic idea is to add an automation layer to Django's model, view, template structure. The automation layer collects in one place all business processes which in a Django app often are distributed across models, views and any glue code. **Automations** consist of **tasks** which are carried out one after another. **Modifiers** affect, e.g. when a task is carried out. from automations import flow from automations.flow import this # "this" can be used in a class definition as a replacement for "self" from . import forms class ProcessInput(Automation): """The process steps are defined by sequentially adding the corresponding nodes""" start = flow.Execute(this.get_user_input) # Collect input a user has supplied check = flow.If( this.does_not_need_approval # Need approval? ).Then(this.process) # No? Continue later approval = flow.Form(forms.ApprovalForm).Group(name="admins") # Let admins approve process = flow.Execute(this.process_input) # Generate output end = flow.End() critical = 10_000 def get_user_input(task_instance): ... def does_not_need_approval(task_instance): return not (task_instance.data['amount'] > self.critical) def process_input(task_instance): ... # Documentation See the [documentation on readthedocs.io](https://django-automations.readthedocs.io/). %prep %autosetup -n django-automations-0.9.4.1 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-django-automations -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Thu Jun 08 2023 Python_Bot - 0.9.4.1-1 - Package Spec generated