Skip to content

Commit

Permalink
Add missing docstrings, fix return of datetime objects
Browse files Browse the repository at this point in the history
Ref #255
  • Loading branch information
algorys committed Mar 9, 2018
1 parent 00b2eb9 commit f39383d
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 28 deletions.
10 changes: 3 additions & 7 deletions alignak_app/backend/datamanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@

from logging import getLogger

from alignak_app.utils.time import get_local_datetime, get_local_datetime_from_date
from alignak_app.items.livesynthesis import LiveSynthesis

logger = getLogger(__name__)
Expand Down Expand Up @@ -318,13 +319,8 @@ def get_events(self):
output = message_split[4]

# Convert updated date to user local time
gmt_time = datetime.datetime.strptime(
event.data['_updated'], "%a, %d %b %Y %H:%M:%S GMT"
)
local_time = gmt_time.replace(
tzinfo=datetime.timezone.utc) \
.astimezone(tz=None) \
.strftime("%a, %d %b %Y %H:%M:%S %Z")
local_timestamp = get_local_datetime_from_date(event.data['_updated'])
local_time = local_timestamp.strftime("%a, %d %b %Y %H:%M:%S %Z")

# Define message
if service:
Expand Down
27 changes: 18 additions & 9 deletions alignak_app/qobjects/host/history.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@

from alignak_app.items.history import History
from alignak_app.utils.config import settings
from alignak_app.utils.time import convert_date_to_timestamp, get_time_diff_since_last_timestamp
from alignak_app.utils.time import get_local_datetime_from_date, get_time_diff_since_last_timestamp

from alignak_app.qobjects.common.frames import AppQFrame
from alignak_app.qobjects.common.widgets import center_widget
Expand Down Expand Up @@ -94,8 +94,10 @@ def get_icon_widget(event):
"""
Return QWidget with corresponding icon to item state
:param event: TODO
:type event: History
:param event: data of an event
:type event: dict
:return: icon QWidget
:rtype: QWidget
"""

widget_icon = QWidget()
Expand All @@ -119,7 +121,7 @@ def get_icon_widget(event):

def update_history_data(self, hostname, host_history):
"""
TODO
Update data of history QTableWidget
:param hostname: name of the host
:type hostname: str
Expand All @@ -142,10 +144,11 @@ def update_history_data(self, hostname, host_history):
self.history_table.setCellWidget(row, 0, icon_item)

# Event Type (with date)
created_timestamp = convert_date_to_timestamp(event['_updated'])
created_since = get_time_diff_since_last_timestamp(created_timestamp)
local_timestamp = get_local_datetime_from_date(event['_updated'])
created_since = get_time_diff_since_last_timestamp(local_timestamp.timestamp())

event_type = self.get_event_type(event, hostname)
event_type_dated = '%s (Updated: %s)' % (event_type, created_since)
event_type_dated = '%s (Updated at: %s)' % (event_type, created_since)
type_item = QTableWidgetItem(event_type_dated)
type_item.setForeground(
QColor(History.get_event_color(event['message'], event['type']))
Expand All @@ -161,8 +164,14 @@ def update_history_data(self, hostname, host_history):
@staticmethod
def get_event_type(event, hostname):
"""
TODO
:return:
Return event type for history
:param event: event of history
:type event: dict
:param hostname: name of host attached to event
:type hostname: str
:return: the event type
:rtype: str
"""

event_type = ''
Expand Down
38 changes: 26 additions & 12 deletions alignak_app/utils/time.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,14 @@
logger = getLogger(__name__)


def convert_date_to_timestamp(date_str):
def get_local_datetime_from_date(_date):
"""
TODO
:param date_str:
:type date_str: str
:return:
Return the local timestamp from date
:param _date: date to convert to datetime
:type _date: str
:return: corresponding local datetime of date
:rtype: datetime.datetime
"""

# Backend is set in EN, so temp set locale
Expand All @@ -49,21 +51,33 @@ def convert_date_to_timestamp(date_str):
else:
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')

date_format = datetime.datetime.strptime(date_str, '%a, %d %b %Y %H:%M:%S GMT')
date_format = datetime.datetime.strptime(_date, '%a, %d %b %Y %H:%M:%S GMT')

# Restore locale
locale.setlocale(locale.LC_ALL, '')

# Convert to local time
# TODO see after if this can be move to a function
local_time = date_format.replace(
tzinfo=datetime.timezone.utc) \
.astimezone(tz=None)
local_time = get_local_datetime(date_format)

return local_time


def get_local_datetime(_date):
"""
Return the local time from a datetime
:param _date: datetime to set to local time
:type _date: datetime.datetime
:return: local date time
:rtype: datetime.datetime
"""

tz_time = _date.replace(tzinfo=datetime.timezone.utc).astimezone(tz=None)

return local_time.timestamp()
return tz_time


def get_time_diff_since_last_timestamp(timestamp): # pragma: no cover - not testable
def get_time_diff_since_last_timestamp(timestamp):
"""
Return the diff between the last time stamp
Expand Down

0 comments on commit f39383d

Please sign in to comment.