From e16178ba00e0a08d0d4b4ffc4bf027bc79ae6672 Mon Sep 17 00:00:00 2001 From: Marnanel Thurman Date: Wed, 31 Jul 2019 19:49:42 +0100 Subject: [PATCH] create() can run local delivery if you pass run_delivery=True. It can also optionally take a "value" parameter as well as reading the fields of the new object out of kwargs. --- django_kepi/create.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/django_kepi/create.py b/django_kepi/create.py index 63a7730..02ea9db 100644 --- a/django_kepi/create.py +++ b/django_kepi/create.py @@ -6,14 +6,21 @@ logger = logging.getLogger(name='django_kepi') def create( is_local_user=True, run_side_effects=True, - **value): + run_delivery=True, + value=None, + **kwargs): + + from django_kepi.delivery import deliver logger.info("Create begins: source is %s; local? %s; run side effects? %s", value, is_local_user, run_side_effects) + if value is None: + value = kwargs.copy() + # Remove the "f_" prefix, which exists so that we can write # things like f_type or f_object without using reserved keywords. - for k,v in value.copy().items(): + for k,v in kwargs.copy().items(): if k.startswith('f_'): value[k[2:]] = v del value[k] @@ -87,5 +94,9 @@ def create( if run_side_effects: result.run_side_effects() + if run_delivery: + deliver(result.number, + incoming = True) + return result