From 3e85d272f7a089ac2c59cd013c4d870fe39b0364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20T=C3=BD=C4=8D?= Date: Thu, 4 Apr 2024 16:59:50 +0200 Subject: [PATCH] Implement planning choice for Crypto --- estimage/plugins/crypto/__init__.py | 9 ++++++--- estimage/plugins/crypto/forms.py | 1 + estimage/plugins/crypto/routes.py | 5 ++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/estimage/plugins/crypto/__init__.py b/estimage/plugins/crypto/__init__.py index 51f931d..95a04d6 100644 --- a/estimage/plugins/crypto/__init__.py +++ b/estimage/plugins/crypto/__init__.py @@ -56,11 +56,14 @@ def from_form_and_app(cls, form, app) -> "InputSpec": ret.server_url = "https://issues.redhat.com" ret.token = form.token.data ret.cutoff_date = app.get_config_option("RETROSPECTIVE_PERIOD")[0] + sprint = "openSprints()" query = f"project = {PROJECT_NAME} AND type = Task AND sprint in openSprints()" query = "filter = 12350823 AND Sprint in openSprints() AND labels = committed AND issuetype in (task, bug, Story)" - ret.retrospective_query = query - query = "filter = 12350823 AND Sprint in futureSprints() AND issuetype in (task, bug, Story)" - ret.projective_query = query + query_tpl = "filter = 12350823 AND Sprint in {sprint} AND issuetype in (task, bug, Story)" + ret.retrospective_query = query_tpl.format(sprint=sprint) + if form.project_next.data: + sprint = "futureSprints()" + ret.projective_query = query_tpl.format(sprint=sprint) ret.item_class = app.get_final_class("BaseCard") return ret diff --git a/estimage/plugins/crypto/forms.py b/estimage/plugins/crypto/forms.py index 3c5636f..a2a544f 100644 --- a/estimage/plugins/crypto/forms.py +++ b/estimage/plugins/crypto/forms.py @@ -6,6 +6,7 @@ class CryptoFormEnd(FlaskForm): + project_next = wtforms.BooleanField('Plan for the Next Iteration') submit = wtforms.SubmitField("Import Data") diff --git a/estimage/plugins/crypto/routes.py b/estimage/plugins/crypto/routes.py index 2a0674e..04b6ac2 100644 --- a/estimage/plugins/crypto/routes.py +++ b/estimage/plugins/crypto/routes.py @@ -4,7 +4,7 @@ import flask_login from ...webapp import web_utils -from ...plugins import crypto, jira +from ...plugins import crypto, jira, redhat_compliance from ...plugins.jira import routes from . import forms @@ -19,5 +19,8 @@ def sync(): if form.validate_on_submit(): task_spec = crypto.InputSpec.from_form_and_app(form, flask.current_app) jira.routes.do_stuff_and_flash_messages(task_spec, crypto.do_stuff) + else: + next_starts_soon = redhat_compliance.days_to_next_epoch(datetime.datetime.today()) < 30 + form.project_next.data = next_starts_soon return web_utils.render_template( 'crypto.html', title='Red Hat Crypto Plugin', plugin_form=form, )