bugfix/merge date time to same form row

This commit is contained in:
Hongwei 2023-11-29 14:54:13 +01:00
parent 3491f17e75
commit 6b54d4a107
12 changed files with 29 additions and 152 deletions

View File

@ -251,6 +251,9 @@ API_DATE_FORMAT_WITH_SECONDS = '%Y-%m-%dT%H:%M:%SZ'
#Map Java: yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
API_DATE_FORMAT_WITH_MILLISECONDS = '%Y-%m-%dT%H:%M:%S.%fZ'
# the API_Manager the web form datetime format, eg: 2023-11-28 10:49:27
API_DATE_FORMAT_WITH_DAY_DATE_TIME = '%Y-%m-%d %H:%M:%S'
# the API_Manager the web form date format, eg: 2020-10-11
API_DATE_FORMAT_WITH_DAY = '%Y-%m-%d'
API_FIELD_TIME_FORMAT = '%H-%M-%S'

View File

@ -4,7 +4,8 @@ Base utilities
"""
from django.contrib.humanize.templatetags.humanize import naturaltime
from datetime import datetime, timedelta
from apimanager.settings import API_DATE_FORMAT_WITH_MILLISECONDS, API_DATE_FORMAT_WITH_DAY
from apimanager.settings import API_DATE_FORMAT_WITH_MILLISECONDS, API_DATE_FORMAT_WITH_DAY, \
API_DATE_FORMAT_WITH_DAY_DATE_TIME
from base import context_processors
from django.contrib import messages
import functools
@ -61,7 +62,7 @@ def convert_form_date_to_obpapi_datetime_format(form_to_date_string):
"""
convert the String 2020-10-22 to 2020-10-22T00:00:00.000000Z
"""
return datetime.strptime(form_to_date_string, API_DATE_FORMAT_WITH_DAY).strftime(API_DATE_FORMAT_WITH_MILLISECONDS)
return datetime.strptime(form_to_date_string, API_DATE_FORMAT_WITH_DAY_DATE_TIME).strftime(API_DATE_FORMAT_WITH_MILLISECONDS)
def return_to_days_ago(date, days):
"""

View File

@ -10,54 +10,32 @@ from django.forms.widgets import SelectMultiple, CheckboxInput, CheckboxSelectMu
from datetime import datetime, timedelta
from django.utils.translation import ugettext_lazy as _
from bootstrap_datepicker_plus import DatePickerInput, DateTimePickerInput
from apimanager.settings import API_DATE_FORMAT_WITH_DAY, API_DATE_FORMAT_WITH_MILLISECONDS
from apimanager.settings import API_DATE_FORMAT_WITH_DAY, API_FIELD_TIME_FORMAT
from bootstrap_datepicker_plus import DateTimePickerInput
from apimanager.settings import API_DATE_FORMAT_WITH_DAY_DATE_TIME
API_DATE_FORMAT_WITH_MILLISECONDS_PLACEHOLDER = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
FORM_CONTROL = 'form-control'
FROM_DATE = 'From Date'
TO_DATE = 'To Date'
FROM_DATE = 'From Date Time'
TO_DATE = 'To Date Time'
PLACEHOLDER = "2013-01-22"
PLACEHOLDER1 = "23:59:59"
PLACEHOLDER1 = "2022-01-01 12:30:45"
PLACEHOLDER2 = "00:00:00"
class MetricsForm(forms.Form):
from_date = forms.DateTimeField(
label=_(FROM_DATE),
widget=DatePickerInput(format=API_DATE_FORMAT_WITH_DAY),
widget=DateTimePickerInput(format=API_DATE_FORMAT_WITH_DAY_DATE_TIME),
required=True,
initial=(datetime.now() - timedelta(1)).strftime(API_DATE_FORMAT_WITH_DAY),
)
from_time = forms.TimeField(
label=_('From Time'),
widget=forms.TimeInput(
format='%H:%M:%S',
attrs={
'placeholder': PLACEHOLDER2,
'class': 'form-control',
}
),
required=False,
initial=(datetime.now() - timedelta(1)).strftime(API_DATE_FORMAT_WITH_DAY_DATE_TIME),
)
to_date = forms.DateTimeField(
label=_(TO_DATE),
widget=DatePickerInput(format=API_DATE_FORMAT_WITH_DAY),
widget=DateTimePickerInput(format=API_DATE_FORMAT_WITH_DAY_DATE_TIME),
required=True,
initial=(datetime.now() - timedelta()).strftime(API_DATE_FORMAT_WITH_DAY),
)
to_date_time = forms.TimeField(
label=_('To Time'),
widget=forms.TimeInput(
format='%H:%M:%S',
attrs={
'placeholder': PLACEHOLDER1,
'class': 'form-control',
}
),
required=False,
initial=(datetime.now() - timedelta()).strftime(API_DATE_FORMAT_WITH_DAY_DATE_TIME),
)
limit = forms.IntegerField(
label=_('Limit'),
widget=forms.NumberInput(
@ -179,9 +157,9 @@ class ConnectorMetricsForm(MetricsForm):
# override from_date until API returns values without given date
from_date = forms.DateTimeField(
label=_(FROM_DATE),
widget=DatePickerInput(format=API_DATE_FORMAT_WITH_DAY),
widget=DateTimePickerInput(format=API_DATE_FORMAT_WITH_DAY_DATE_TIME),
required=True,
initial=(datetime.now() - timedelta(6)).strftime(API_DATE_FORMAT_WITH_DAY),
initial=(datetime.now() - timedelta(6)).strftime(API_DATE_FORMAT_WITH_DAY_DATE_TIME),
)
connector_name = forms.CharField(
label=_('Connector Name'),
@ -213,39 +191,17 @@ class ConnectorMetricsForm(MetricsForm):
class CustomSummaryForm(forms.Form):
to_date = forms.DateField(
label=_("Date"),
widget=DatePickerInput(format=API_DATE_FORMAT_WITH_DAY),
to_date = forms.DateTimeField(
label=_(TO_DATE),
widget=DateTimePickerInput(format=API_DATE_FORMAT_WITH_DAY_DATE_TIME),
required=True,
initial=str(datetime.now().strftime(API_DATE_FORMAT_WITH_DAY)),
initial=(datetime.now()).strftime(API_DATE_FORMAT_WITH_DAY_DATE_TIME),
)
to_date_time = forms.TimeField(
label=_('Time'),
widget=forms.TimeInput(
format='%H:%M:%S',
attrs={
'placeholder': PLACEHOLDER2,
'class': 'form-control',
}
),
required=False,
)
from_date_custom = forms.DateField(
from_date_custom = forms.DateTimeField(
label=_(FROM_DATE),
widget=DatePickerInput(format=API_DATE_FORMAT_WITH_DAY),
widget=DateTimePickerInput(format=API_DATE_FORMAT_WITH_DAY_DATE_TIME),
required=True,
initial=(datetime.now() - timedelta(6)).strftime(API_DATE_FORMAT_WITH_DAY),
)
from_time_custom = forms.TimeField(
label=_('Time'),
widget=forms.TimeInput(
format='%H:%M:%S',
attrs={
'placeholder': PLACEHOLDER1,
'class': 'form-control',
}
),
required=False,
initial=(datetime.now() - timedelta(6)).strftime(API_DATE_FORMAT_WITH_DAY_DATE_TIME),
)
include_app_names = forms.CharField(
label=_('Include App Names'),
@ -263,22 +219,11 @@ class CustomSummaryForm(forms.Form):
super(CustomSummaryForm, self).__init__(*args, **kwargs)
class MonthlyMetricsSummaryForm(forms.Form):
to_date = forms.DateField(
label=_("To Date"),
widget=DatePickerInput(format=API_DATE_FORMAT_WITH_DAY),
to_date = forms.DateTimeField(
label=_(TO_DATE),
widget=DateTimePickerInput(format=API_DATE_FORMAT_WITH_DAY_DATE_TIME),
required=True,
initial=str(datetime.now().strftime(API_DATE_FORMAT_WITH_DAY)),
)
to_date_time = forms.TimeField(
label=_('Time'),
widget=forms.TimeInput(
format='%H:%M:%S',
attrs={
'placeholder': PLACEHOLDER1,
'class': 'form-control',
}
),
required=False,
initial=(datetime.now()).strftime(API_DATE_FORMAT_WITH_DAY_DATE_TIME),
)
include_app_names = forms.CharField(
label=_('Include App Names'),

View File

@ -44,13 +44,6 @@
{{ form.to_date }}
</div>
</div>
<div class="col-xs-6 col-sm-3">
{% if form.to_date_time.errors %}<div class="alert alert-danger">{{ form.to_date_time.errors }}</div>{% endif %}
<div class="form-group">
{{ form.to_date_time.label_tag }}
{{ form.to_date_time }}
</div>
</div>
</div>
<div class="row">

View File

@ -44,10 +44,6 @@
</div>
<!--<div class="col-xs-6 col-sm-3">
{% if form.from_time_custom.errors %}<div class="alert alert-danger">{{ form.from_time_custom.errors }}</div>{% endif %}
<div class="form-group">
<strong>{% trans "From Time" %} </strong>
{{ form.from_time_custom }}
</div>
</div>-->
<div class="col-xs-6 col-sm-3">
{% if form.to_date.errors %}<div class="alert alert-danger">{{ form.to_date.errors }}</div>{% endif %}
@ -56,20 +52,6 @@
{{ form.to_date }}
</div>
</div>
<!--<div class="col-xs-6 col-sm-3">
{% if form.to_date_time.errors %}<div class="alert alert-danger">{{ form.to_date_time.errors }}</div>{% endif %}
<div class="form-group">
<strong>{% trans "To Time" %} </strong>
{{ form.to_date_time }}
</div>
</div>-->
<div class="col-xs-4 col-sm-3">
{% if form.include_app_names.errors %}<div class="alert alert-danger">{{ form.include_app_names.errors }}</div>{% endif %}
<div class="form-group">
{{ form.include_app_names.label_tag }}
{{ form.include_app_names }}
</div>
</div>
</div>
<button type="submit" class="btn btn-primary">{% trans "Search" %}</button>
</form>

View File

@ -49,13 +49,6 @@
{{ form.to_date }}
</div>
</div>
<!--<div class="col-xs-4 col-sm-3">
{% if form.to_date_time.errors %}<div class="alert alert-danger">{{ form.to_date_time.errors }}</div>{% endif %}
<div class="form-group">
{{ form.to_date_time.label_tag }}
{{ form.to_date_time }}
</div>
</div>-->
<div class="col-xs-4 col-sm-3">
{% if form.include_app_names.errors %}<div class="alert alert-danger">{{ form.include_app_names.errors }}</div>{% endif %}
<div class="form-group">

View File

@ -48,13 +48,6 @@
{{ form.to_date }}
</div>
</div>
<!--<div class="col-xs-4 col-sm-3">
{% if form.to_date_time.errors %}<div class="alert alert-danger">{{ form.to_date_time.errors }}</div>{% endif %}
<div class="form-group">
{{ form.to_date_time.label_tag }}
{{ form.to_date_time }}
</div>
</div>-->
<div class="col-xs-4 col-sm-3">
{% if form.include_app_names.errors %}<div class="alert alert-danger">{{ form.include_app_names.errors }}</div>{% endif %}
<div class="form-group">

View File

@ -36,7 +36,6 @@
{% endif %}
<div class="row">
<div class="col-xs-6 col-sm-3">
{% if form.to_date.errors %}<div class="alert alert-danger">{{ form.to_date.errors }}</div>{% endif %}
<div class="form-group">
@ -44,14 +43,6 @@
{{ form.to_date }}
</div>
</div>
<!--<div class="col-xs-4 col-sm-3">
{% if form.to_date_time.errors %}<div class="alert alert-danger">{{ form.to_date_time.errors }}</div>{% endif %}
<div class="form-group">
{{ form.to_date_time.label_tag }}
{{ form.to_date_time }}
</div>
</div>-->
<div class="col-xs-4 col-sm-3">
{% if form.include_app_names.errors %}<div class="alert alert-danger">{{ form.include_app_names.errors }}</div>{% endif %}
<div class="form-group">

View File

@ -48,14 +48,6 @@
{{ form.to_date }}
</div>
</div>
<!--<div class="col-xs-4 col-sm-3">
{% if form.to_date_time.errors %}<div class="alert alert-danger">{{ form.to_date_time.errors }}</div>{% endif %}
<div class="form-group">
{{ form.to_date_time.label_tag }}
{{ form.to_date_time }}
</div>
</div>-->
<div class="col-xs-4 col-sm-3">
{% if form.include_app_names.errors %}<div class="alert alert-danger">{{ form.include_app_names.errors }}</div>{% endif %}
<div class="form-group">

View File

@ -50,14 +50,6 @@
{{ form.to_date }}
</div>
</div>
<!--<div class="col-xs-4 col-sm-3">
{% if form.to_date_time.errors %}<div class="alert alert-danger">{{ form.to_date_time.errors }}</div>{% endif %}
<div class="form-group">
{{ form.to_date_time.label_tag }}
{{ form.to_date_time }}
</div>
</div>-->
<div class="col-xs-4 col-sm-3">
{% if form.include_app_names.errors %}<div class="alert alert-danger">{{ form.include_app_names.errors }}</div>{% endif %}
<div class="form-group">

View File

@ -50,13 +50,6 @@
{{ form.to_date }}
</div>
</div>
<!--<div class="col-xs-4 col-sm-3">
{% if form.to_date_time.errors %}<div class="alert alert-danger">{{ form.to_date_time.errors }}</div>{% endif %}
<div class="form-group">
{{ form.to_date_time.label_tag }}
{{ form.to_date_time }}
</div>
</div>-->
<div class="col-xs-4 col-sm-3">
{% if form.include_app_names.errors %}<div class="alert alert-danger">{{ form.include_app_names.errors }}</div>{% endif %}
<div class="form-group">

View File

@ -893,7 +893,6 @@ class MonthlyMetricsSummaryView(LoginRequiredMixin, TemplateView):
print(form.data, "Form data")
to_date = convert_form_date_to_obpapi_datetime_format(form_to_date_string)
print("to_date", to_date)
#to_date = datetime.datetime.strptime(f"{form.data['to_date']}T{form.data['to_date_time']}Z", API_DATE_FORMAT_WITH_SECONDS ).strftime(API_DATE_FORMAT_WITH_MILLISECONDS)
if (web_page_type == SummaryType.DAILY):
# for one day, the from_date is 1 day ago.
from_date = return_to_days_ago(to_date, 0)