From 3b247bfb5fbd2d6b2cc3152381e83305f17d24bb Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Fri, 16 Nov 2018 21:51:57 -0400 Subject: [PATCH] Documents: Document task transformations Add support to pass serialized transformation lists to the document page generation task. Signed-off-by: Roberto Rosario --- mayan/apps/documents/tasks.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/mayan/apps/documents/tasks.py b/mayan/apps/documents/tasks.py index c4a9256aa9..09c5cef3fc 100644 --- a/mayan/apps/documents/tasks.py +++ b/mayan/apps/documents/tasks.py @@ -76,14 +76,27 @@ def task_delete_stubs(): @app.task() -def task_generate_document_page_image(document_page_id, *args, **kwargs): +def task_generate_document_page_image(document_page_id, transformation_list=None, *args, **kwargs): + """ + Arguments: + * transformation_list: List of dictionaties with keys: name and kwargs + * args, kwargs: "width, height, zoom, rotation + """ DocumentPage = apps.get_model( app_label='documents', model_name='DocumentPage' ) document_page = DocumentPage.objects.get(pk=document_page_id) - return document_page.generate_image(*args, **kwargs) + transformations = [] + for transformation in transformation_list or []: + transformations.append( + BaseTransformation.get( + name=transformation['name'] + )(**transformation.get('kwargs', {})) + ) + + return document_page.generate_image(transformations=transformations, *args, **kwargs) @app.task(ignore_result=True)