Project

General

Profile

« Previous | Next » 

Revision a95f286b

Added by Jérôme Schneider over 13 years ago

Add Calebasse user event management for work and holidays

  • agenda/models.py: cleaning
  • cale_base/models/user.py: add work_events and holidays
  • cale_base/tests.py: add a basic test for add_work_event
  • exceptions.py: basic exception for Calebasse

View differences:

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