Project

General

Profile

Download (1.75 KB) Statistics
| Branch: | Tag: | Revision:

from django.db import models
from django.contrib.auth.models import User

from calebasse.agenda.models import create_event
from calebasse.exceptions import CalebasseException
from dateutil import rrule

class CalebasseUser(User):

class Meta:
app_label = 'cale_base'

services = models.ManyToManyField('ActType')
work_event = models.ManyToManyField('agenda.Event', related_name='work_events')
holidays = models.ManyToManyField('agenda.Event', related_name='holidays')

def add_work_event(self, weekday, start_time, end_time, until, services=None):
''' `add_work_event` allows you to add quickly a work event for a user

Args:
weekday (str): weekday constants (MO, TU, etc)
start_date (datetime): start time
end_date (datetime): end time
services (list): list of cale_base.models.Service objects

Returns:
Nothing

Raise:
CalebasseException
'''

if weekday == 'MO':
weekday = rrule.MO
elif weekday == 'TU':
weekday = rrule.TU
elif weekday == 'WE':
weekday = rrule.WE
elif weekday == 'TH':
weekday = rrule.TH
elif weekday == 'FR':
weekday = rrule.FR
elif weekday == 'SA':
weekday = rrule.SA
elif weekday == 'SU':
weekday = rrule.SU
else:
raise CalebasseException("%s is not a valid weekday constants" % day)

self.event = create_event("work %s" % weekday,
('work_event', 'Work event'),
freq = rrule.WEEKLY,
byweekday = weekday,
start_time = start_time,
end_time = end_time,
until = until)


(7-7/7)