From bcedbadd26cd9a187ab9f2634056349cd4dd641e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= Date: Sun, 2 Jun 2024 11:27:37 +0100 Subject: [PATCH 1/4] chore: tiny spell fix --- src/appier_extras/parts/admin/templates/fluid/counters.html.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/appier_extras/parts/admin/templates/fluid/counters.html.tpl b/src/appier_extras/parts/admin/templates/fluid/counters.html.tpl index f6d1e190..24c73ea4 100644 --- a/src/appier_extras/parts/admin/templates/fluid/counters.html.tpl +++ b/src/appier_extras/parts/admin/templates/fluid/counters.html.tpl @@ -1,6 +1,6 @@ {% extends "admin/admin.fluid.html.tpl" %} {% block title %}Counters{% endblock %} -{% block name %}Counter{% endblock %} +{% block name %}Counters{% endblock %} {% block style %}no-padding{% endblock %} {% block content %} From a9f543e3a8db040d4db6d04ae55adedfed637b7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= Date: Mon, 3 Jun 2024 07:05:50 +0100 Subject: [PATCH 2/4] chore: initial cron jobs listing --- src/appier_extras/parts/admin/part.py | 15 +++++++++++ .../admin/templates/fluid/cron_jobs.html.tpl | 26 +++++++++++++++++++ .../admin/templates/fluid/status.html.tpl | 7 +++++ 3 files changed, 48 insertions(+) create mode 100644 src/appier_extras/parts/admin/templates/fluid/cron_jobs.html.tpl diff --git a/src/appier_extras/parts/admin/part.py b/src/appier_extras/parts/admin/part.py index 9b422492..1d2d7c54 100644 --- a/src/appier_extras/parts/admin/part.py +++ b/src/appier_extras/parts/admin/part.py @@ -248,6 +248,7 @@ def routes(self): (("GET",), "/admin/sessions//delete", self.delete_session), (("GET",), "/admin/peers", self.list_peers), (("GET",), "/admin/counters", self.list_counters), + (("GET",), "/admin/cron_jobs", self.list_cron_jobs), (("GET",), "/admin/events.csv", self.list_events_csv), (("GET",), "/admin/locale.csv", self.list_locales_csv), ( @@ -1466,6 +1467,13 @@ def list_counters(self): counters = collection.find() return self.template("counters.html.tpl", section="status", counters=counters) + @appier.ensure(token="admin.status", context="admin") + def list_cron_jobs(self): + cron_jobs = self._cron_jobs() + return self.template( + "cron_jobs.html.tpl", section="status", cron_jobs=cron_jobs + ) + @appier.ensure(token="admin", context="admin") def list_events_csv(self): object = appier.get_object(alias=True, find=True, limit=0) @@ -2443,6 +2451,13 @@ def _counters(self): collection = adapter.collection("counters") return collection + def _cron_jobs(self): + if not hasattr(self.owner, "_cron"): + return [] + if not self.owner._cron: + return [] + return [task[1] for task in self.owner._cron._tasks] + def _appier_extras_loader(self, module): versions = [] if hasattr(module, "VERSION"): diff --git a/src/appier_extras/parts/admin/templates/fluid/cron_jobs.html.tpl b/src/appier_extras/parts/admin/templates/fluid/cron_jobs.html.tpl new file mode 100644 index 00000000..d04c6921 --- /dev/null +++ b/src/appier_extras/parts/admin/templates/fluid/cron_jobs.html.tpl @@ -0,0 +1,26 @@ +{% extends "admin/admin.fluid.html.tpl" %} +{% block title %}Cron Jobs{% endblock %} +{% block name %}Cron Jobs{% endblock %} +{% block style %}no-padding{% endblock %} +{% block content %} +
+ + + + + + + + + {% for cron_job in cron_jobs %} + + + + + + {% endfor %} + +
IdentifierCronNext Run
+ {{ cron_job.id }} + {{ cron_job.cron }}{{ cron_job.next_run() }}
+{% endblock %} diff --git a/src/appier_extras/parts/admin/templates/fluid/status.html.tpl b/src/appier_extras/parts/admin/templates/fluid/status.html.tpl index 9b2b94a3..c7836d3b 100644 --- a/src/appier_extras/parts/admin/templates/fluid/status.html.tpl +++ b/src/appier_extras/parts/admin/templates/fluid/status.html.tpl @@ -11,6 +11,7 @@ {% set sessions_c = request.session_c.count() %} {% set peers_c = own._peers|length %} {% set counters_c = own._counters().count() %} + {% set cron_jobs_c = own._cron_jobs()|length %}
+
Cache class
{{ own.cache_c.__name__ }}
From 107f4fab03d836b611616c579cf1722fa4ee3e7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= Date: Mon, 3 Jun 2024 11:35:20 +0100 Subject: [PATCH 3/4] chore: improved cron jobs count performance --- src/appier_extras/parts/admin/part.py | 7 +++++++ .../parts/admin/templates/fluid/status.html.tpl | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/appier_extras/parts/admin/part.py b/src/appier_extras/parts/admin/part.py index 1d2d7c54..674e963f 100644 --- a/src/appier_extras/parts/admin/part.py +++ b/src/appier_extras/parts/admin/part.py @@ -2458,6 +2458,13 @@ def _cron_jobs(self): return [] return [task[1] for task in self.owner._cron._tasks] + def _cron_jobs_count(self): + if not hasattr(self.owner, "_cron"): + return 0 + if not self.owner._cron: + return 0 + return len(self.owner._cron._tasks) + def _appier_extras_loader(self, module): versions = [] if hasattr(module, "VERSION"): diff --git a/src/appier_extras/parts/admin/templates/fluid/status.html.tpl b/src/appier_extras/parts/admin/templates/fluid/status.html.tpl index c7836d3b..ff4c9b64 100644 --- a/src/appier_extras/parts/admin/templates/fluid/status.html.tpl +++ b/src/appier_extras/parts/admin/templates/fluid/status.html.tpl @@ -11,7 +11,7 @@ {% set sessions_c = request.session_c.count() %} {% set peers_c = own._peers|length %} {% set counters_c = own._counters().count() %} - {% set cron_jobs_c = own._cron_jobs()|length %} + {% set cron_jobs_c = own._cron_jobs_count() %}
From 7e8276da83dce957cd449e70236aaa7c48e7d278 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= Date: Mon, 3 Jun 2024 11:38:03 +0100 Subject: [PATCH 4/4] chore: description added to cron jobs listing --- CHANGELOG.md | 2 +- .../parts/admin/templates/fluid/cron_jobs.html.tpl | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88e94985..0da7449e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -* +* Cron Jobs (Tasks) listing support ### Changed diff --git a/src/appier_extras/parts/admin/templates/fluid/cron_jobs.html.tpl b/src/appier_extras/parts/admin/templates/fluid/cron_jobs.html.tpl index d04c6921..efa2f6a7 100644 --- a/src/appier_extras/parts/admin/templates/fluid/cron_jobs.html.tpl +++ b/src/appier_extras/parts/admin/templates/fluid/cron_jobs.html.tpl @@ -7,6 +7,7 @@ Identifier + Description Cron Next Run @@ -17,6 +18,7 @@ {{ cron_job.id }} + {{ cron_job.description|default("-", True) }} {{ cron_job.cron }} {{ cron_job.next_run() }}