Revision a95f286b
Added by Jérôme Schneider over 13 years ago
| calebasse/cale_base/models/user.py | ||
|---|---|---|
|
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)
|
||
|
|
||
|
|
||
Also available in: Unified diff
Add Calebasse user event management for work and holidays