$def with (status, event, messages) $code def format(time: int) -> str: if time is not None and time > 0: return minutes_seconds(time) + ' min' else: return '' def color(status: ResultStatus) -> str: if status == ResultStatus.OK: return '#70ff70' # green elif status in (ResultStatus.MISSING_PUNCH, ResultStatus.DID_NOT_FINISH, ResultStatus.OVER_TIME): return '#ff7070' # red else: return '#ffff00' # yellow def format_cardreader_status(status: str) -> str: if status is None or status == 'offline': return '
Card reader offline
' elif status in ['readerConnected', 'cardRead', 'cardRemoved']: return 'Card reader connected
' elif status in ['online', 'readerDisconnected']: return 'Card reader disconnected
' elif status == 'cardInserted': return 'Reading card
' def missing(status: str, missing_controls) -> str: if status == ResultStatus.OK: if missing_controls: if len(missing_controls) == 1: return '1 control' else: return str(len(missing_controls)) + ' controls' else: if missing_controls: if 'FINISH' in missing_controls: return 'Finish time' elif 'START' in missing_controls: return 'Start time' elif len(missing_controls) == 1: return missing_controls[0] elif len(missing_controls) == 2: return missing_controls[0] + ', ' + missing_controls[1] elif len(missing_controls) == 3: return missing_controls[0] + ', ' + missing_controls[1] + ', ' + missing_controls[2] elif len(missing_controls) >= 4: return str(len(missing_controls)) + ' controls'Event name: | $(event.name if event else '') |
---|---|
Event date: | $(event.date.isoformat() if event and event.date else '') |
Read | Control card | Status | Time | Name | Class | Missing controls | |||
---|---|---|---|---|---|---|---|---|---|
$result.get('entryTime', '') | $format_card(result.get('controlCard')) | $MAP_STATUS[result.get('status')] | $format(result.get('time', 0)) | $if result.get('status') in (ResultStatus.OK, ResultStatus.MISSING_PUNCH, ResultStatus.DID_NOT_FINISH, ResultStatus.OVER_TIME):$result.get('lastName', ''), $result.get('firstName', '') | $result.get('class', '') | $missing(result.get('status'), result.get('missingControls', [])) | $else:$result.get('error', '') |