Let config cause time sheet hours to display as HH.HH for some users
default display is still HH:MM however
This commit is contained in:
parent
d7160a0a38
commit
1dda8a961a
|
@ -1,4 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# -*- coding: utf-8; -*-
|
||||
################################################################################
|
||||
#
|
||||
# Rattail -- Retail Software Framework
|
||||
|
@ -28,12 +28,13 @@ from __future__ import unicode_literals, absolute_import
|
|||
|
||||
import datetime
|
||||
|
||||
import six
|
||||
import sqlalchemy as sa
|
||||
|
||||
from rattail import enum
|
||||
from rattail.db import model, api
|
||||
from rattail.time import localtime, make_utc, get_sunday
|
||||
from rattail.util import pretty_hours
|
||||
from rattail.util import pretty_hours, hours_as_decimal
|
||||
|
||||
import formencode as fe
|
||||
from pyramid_simpleform import Form
|
||||
|
@ -348,6 +349,13 @@ class TimeSheetView(View):
|
|||
Fetch all shift data of the given model class (``cls``), according to
|
||||
the given params. The cached shift data is attached to each employee.
|
||||
"""
|
||||
# TODO: a bit hacky, this? display hours as HH:MM by default, but
|
||||
# check config in order to display as HH.HH for certain users
|
||||
hours_style = 'pretty'
|
||||
if self.request.user:
|
||||
hours_style = self.rattail_config.get('tailbone', 'hours_style.{}'.format(self.request.user.username),
|
||||
default='pretty')
|
||||
|
||||
shift_type = 'scheduled' if cls is model.ScheduledShift else 'worked'
|
||||
min_time = localtime(self.rattail_config, datetime.datetime.combine(weekdays[0], datetime.time(0)))
|
||||
max_time = localtime(self.rattail_config, datetime.datetime.combine(weekdays[-1] + datetime.timedelta(days=1), datetime.time(0)))
|
||||
|
@ -400,12 +408,18 @@ class TimeSheetView(View):
|
|||
|
||||
hours = empday['{}_hours'.format(shift_type)]
|
||||
if hours:
|
||||
empday['{}_hours_display'.format(shift_type)] = pretty_hours(hours)
|
||||
if hours_style == 'pretty':
|
||||
empday['{}_hours_display'.format(shift_type)] = pretty_hours(hours)
|
||||
else: # decimal
|
||||
empday['{}_hours_display'.format(shift_type)] = six.text_type(hours_as_decimal(hours))
|
||||
employee.weekdays[i].update(empday)
|
||||
|
||||
hours = getattr(employee, '{}_hours'.format(shift_type))
|
||||
if hours:
|
||||
display = pretty_hours(hours)
|
||||
if hours_style == 'pretty':
|
||||
display = pretty_hours(hours)
|
||||
else: # decimal
|
||||
display = six.text_type(hours_as_decimal(hours))
|
||||
if hours_incomplete:
|
||||
display = '{} ?'.format(display)
|
||||
setattr(employee, '{}_hours_display'.format(shift_type), display)
|
||||
|
|
Loading…
Reference in a new issue