Source code for sandglass.models.timesheet

from django.core.validators import MinValueValidator
from django.contrib.auth.models import User
from django.db import models
from django.utils.translation import ugettext_lazy as _

from django_extensions.db.models import TimeStampedModel
from timedelta.fields import TimedeltaField


[docs]class TimeSheet(TimeStampedModel): """Regular settlement and savepoint for a user's (employee's) status. For future calculations, the last TimeSheet is used as basis. Every new user should have an initial TimeSheet. """ user = models.ForeignKey( User, verbose_name=_(u"user")) name = models.CharField( verbose_name=_(u"name"), max_length=255, db_index=True) description = models.TextField( verbose_name=_(u"description"), blank=True, null=True) date_from = models.DateTimeField( verbose_name=_(u"daterange start"), blank=True, null=True) date_to = models.DateTimeField( verbose_name=_(u"daterange end"), blank=True, null=True) verified = models.BooleanField( verbose_name=_(u"verified"), db_index=True, default=False) # pay-out values for flextime and overtime budget flextime_payout = TimedeltaField( verbose_name=_(u"flextime pay-out"), default=0, blank=True, null=True) overtime_payout = TimedeltaField( verbose_name=_(u"overtime pay-out"), default=0, blank=True, null=True) # calculation basis for the *next* timesheet vacation_budget = models.IntegerField( verbose_name=_(u"vacation budget"), default=0) flextime_budget = TimedeltaField( verbose_name=_(u"flextime budget"), default=0, blank=True, null=True) overtime_budget = TimedeltaField( verbose_name=_(u"overtime budget"), default=0, validators=[MinValueValidator(0)]) class Meta: app_label = 'sandglass'
__all__ = ('TimeSheet',)

Project Versions