From 8ae0bab3f5a25c216b69ef85c6f249abd1b8e8bb Mon Sep 17 00:00:00 2001 From: abedyngash Date: Wed, 3 Mar 2021 15:42:13 +0300 Subject: [PATCH 01/10] Changed django.conf.urls.url to django.urls.re_path in respect to latest Django release : RemovedInDjango40Warning --- celery_progress/urls.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/celery_progress/urls.py b/celery_progress/urls.py index ff23848..750256d 100644 --- a/celery_progress/urls.py +++ b/celery_progress/urls.py @@ -1,7 +1,7 @@ -from django.conf.urls import url +from django.urls import repath from . import views app_name = 'celery_progress' urlpatterns = [ - url(r'^(?P[\w-]+)/$', views.get_progress, name='task_status') + repath(r'^(?P[\w-]+)/$', views.get_progress, name='task_status') ] From 3ee02177af5a29502cc0dbe6c375441587b39c64 Mon Sep 17 00:00:00 2001 From: abedyngash Date: Wed, 3 Mar 2021 15:50:21 +0300 Subject: [PATCH 02/10] Changed django.conf.urls.url to django.urls.re_path in respect to latest Django release : RemovedInDjango40Warning --- celery_progress/urls.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/celery_progress/urls.py b/celery_progress/urls.py index 750256d..fc3fcc6 100644 --- a/celery_progress/urls.py +++ b/celery_progress/urls.py @@ -1,7 +1,7 @@ -from django.urls import repath +from django.urls import re_path from . import views app_name = 'celery_progress' urlpatterns = [ - repath(r'^(?P[\w-]+)/$', views.get_progress, name='task_status') + re_path(r'^(?P[\w-]+)/$', views.get_progress, name='task_status') ] From 932d2b715ad93a5f8ec61296803e3bb1e2b398cf Mon Sep 17 00:00:00 2001 From: Cory Zue Date: Thu, 4 Mar 2021 09:06:52 +0200 Subject: [PATCH 03/10] bump version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 893a1e3..0e16809 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ setup( name='celery-progress', - version='0.0.14', + version='0.1.0', packages=find_packages(), include_package_data=True, license='MIT License', From eb8f17413fafc06f8601cc18fd49653202a060e7 Mon Sep 17 00:00:00 2001 From: Omar Khashoggi Date: Thu, 25 Mar 2021 22:08:30 +0300 Subject: [PATCH 04/10] log unknown state --- celery_progress/backend.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/celery_progress/backend.py b/celery_progress/backend.py index baba989..ee6f529 100644 --- a/celery_progress/backend.py +++ b/celery_progress/backend.py @@ -1,10 +1,12 @@ import datetime +import logging from abc import ABCMeta, abstractmethod from decimal import Decimal from celery.result import EagerResult, allow_join_result from celery.backends.base import DisabledBackend +logger = logging.getLogger(__name__) PROGRESS_STATE = 'PROGRESS' @@ -102,11 +104,12 @@ def get_info(self): 'progress': _get_unknown_progress(self.result.state), }) else: + logger.error('Task %s has unknown state %s with metadata %s', self.result.id, self.result.state, self.result.info) response.update({ 'complete': True, 'success': False, 'progress': _get_unknown_progress(self.result.state), - 'result': 'Unknown state {}'.format(str(self.result.info)), + 'result': 'Unknown state {}: {}'.format(self.result.state, str(self.result.info)), }) return response From 807da7b49a36b4fe4d5e09756cbe6d5ee3138a2e Mon Sep 17 00:00:00 2001 From: Omar Khashoggi Date: Thu, 25 Mar 2021 22:55:12 +0300 Subject: [PATCH 05/10] remove unnecessary details of unknown states --- celery_progress/backend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/celery_progress/backend.py b/celery_progress/backend.py index ee6f529..bf3cbd1 100644 --- a/celery_progress/backend.py +++ b/celery_progress/backend.py @@ -109,7 +109,7 @@ def get_info(self): 'complete': True, 'success': False, 'progress': _get_unknown_progress(self.result.state), - 'result': 'Unknown state {}: {}'.format(self.result.state, str(self.result.info)), + 'result': 'Unknown state {}'.format(self.result.state), }) return response From e7431075864dd531912b3bee1d413986bd11e136 Mon Sep 17 00:00:00 2001 From: Cory Zue Date: Mon, 5 Jul 2021 13:11:19 +0200 Subject: [PATCH 06/10] bump version and allowed python versions --- setup.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 0e16809..eb0f101 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ setup( name='celery-progress', - version='0.1.0', + version='0.1.1', packages=find_packages(), include_package_data=True, license='MIT License', @@ -34,6 +34,9 @@ 'Programming Language :: Python', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', ], From cc045dcb9dce10cbf5f5139b4d8fc6da2c4d4d1d Mon Sep 17 00:00:00 2001 From: Cory Zue Date: Fri, 23 Jul 2021 15:30:54 +0200 Subject: [PATCH 07/10] don't crash on default success if progress / message elements are null --- celery_progress/static/celery_progress/celery_progress.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/celery_progress/static/celery_progress/celery_progress.js b/celery_progress/static/celery_progress/celery_progress.js index 4fa178c..8dd3cf9 100644 --- a/celery_progress/static/celery_progress/celery_progress.js +++ b/celery_progress/static/celery_progress/celery_progress.js @@ -33,8 +33,12 @@ class CeleryProgressBar { onSuccessDefault(progressBarElement, progressBarMessageElement, result) { result = this.getMessageDetails(result); - progressBarElement.style.backgroundColor = this.barColors.success; - progressBarMessageElement.textContent = "Success! " + result; + if (progressBarElement) { + progressBarElement.style.backgroundColor = this.barColors.success; + } + if (progressBarMessageElement) { + progressBarMessageElement.textContent = "Success! " + result; + } } onResultDefault(resultElement, result) { From 77ac39793d378075812e18101f3cc6beca411b6b Mon Sep 17 00:00:00 2001 From: Cory Zue Date: Tue, 7 Sep 2021 16:46:45 +0200 Subject: [PATCH 08/10] make it possible to override default status messages --- .../static/celery_progress/celery_progress.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/celery_progress/static/celery_progress/celery_progress.js b/celery_progress/static/celery_progress/celery_progress.js index 8dd3cf9..0a93845 100644 --- a/celery_progress/static/celery_progress/celery_progress.js +++ b/celery_progress/static/celery_progress/celery_progress.js @@ -29,6 +29,12 @@ class CeleryProgressBar { ignored: '#7a7a7a' } this.barColors = Object.assign({}, barColorsDefault, options.barColors); + + let defaultMessages = { + waiting: 'Waiting for task to start...', + started: 'Task started...', + } + this.messages = Object.assign({}, defaultMessages, options.defaultMessages); } onSuccessDefault(progressBarElement, progressBarMessageElement, result) { @@ -79,9 +85,9 @@ class CeleryProgressBar { var description = progress.description || ""; if (progress.current == 0) { if (progress.pending === true) { - progressBarMessageElement.textContent = 'Waiting for task to start...'; + progressBarMessageElement.textContent = this.messages.waiting; } else { - progressBarMessageElement.textContent = 'Task started...'; + progressBarMessageElement.textContent = this.messages.started; } } else { progressBarMessageElement.textContent = progress.current + ' of ' + progress.total + ' processed. ' + description; From 5dc427fd8569b5b5297abd05564255c610b35298 Mon Sep 17 00:00:00 2001 From: Cory Zue Date: Tue, 7 Sep 2021 16:50:08 +0200 Subject: [PATCH 09/10] add messages to docs --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index c98d00e..13e740c 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,7 @@ The `initProgressBar` function takes an optional object of options. The followin | onDataError | function to call on a response that's not JSON or has invalid schema due to a programming error | onError | | onResult | function to call when returned non empty result | CeleryProgressBar.onResultDefault | | barColors | dictionary containing color values for various progress bar states. Colors that are not specified will defer to defaults | barColorsDefault | +| defaultMessages | dictionary containing default messages that can be overridden | see below | The `barColors` option allows you to customize the color of each progress bar state by passing a dictionary of key-value pairs of `state: #hexcode`. The defaults are shown below. @@ -178,6 +179,13 @@ The `barColors` option allows you to customize the color of each progress bar st | progress | #68a9ef | ![#68a9ef](https://placehold.it/15/68a9ef/000000?text=+) | | ignored | #7a7a7a | ![#7a7a7a](https://placehold.it/15/7a7a7a/000000?text=+) | +The `defaultMessages` option allows you to override some default messages in the UI. At the moment these are: + +| Message Id | When Shown | Default Value | +|-------|----------|:-------------:| +| waiting | Task is waiting to start | 'Waiting for task to start...' +| error | Task has started but reports no progress | 'Task started...' + # WebSocket Support Additionally, this library offers WebSocket support using [Django Channels](https://channels.readthedocs.io/en/latest/) From 213a634594526f9efb5c2fd90a07d9f9d6de0768 Mon Sep 17 00:00:00 2001 From: Cory Zue Date: Wed, 8 Sep 2021 09:40:39 +0200 Subject: [PATCH 10/10] fix readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 13e740c..b1426dd 100644 --- a/README.md +++ b/README.md @@ -184,7 +184,7 @@ The `defaultMessages` option allows you to override some default messages in the | Message Id | When Shown | Default Value | |-------|----------|:-------------:| | waiting | Task is waiting to start | 'Waiting for task to start...' -| error | Task has started but reports no progress | 'Task started...' +| started | Task has started but reports no progress | 'Task started...' # WebSocket Support