41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
# chrono-manage tenant_command -d xxxx shell
|
|
# exec(open('chrono_add_desks.py').read())
|
|
|
|
AGENDA_ID = xx # integer identifier of to agenda whom we want to add desks
|
|
NUM_DESK_TO_ADD = yy # integer num of des kto add
|
|
|
|
from datetime import datetime
|
|
from django.db import transaction
|
|
from chrono.agendas.models import Agenda, Desk, TimePeriod, TimePeriodException
|
|
|
|
|
|
agenda = Agenda.objects.get(pk=AGENDA_ID)
|
|
# grab an 'old' desk since new ones might have special time periods exceptions
|
|
desk = agenda.desk_set.order_by('pk').first()
|
|
|
|
|
|
with transaction.atomic():
|
|
for i in range(NUM_DESK_TO_ADD):
|
|
desk_label = 'script desk %s %s' % (datetime.now().strftime('%d-%m-%Y %H:%S'), i+1)
|
|
new_desk = Desk.objects.create(agenda=agenda, label=desk_label)
|
|
|
|
# add time periods
|
|
for tp in desk.timeperiod_set.all():
|
|
TimePeriod.objects.create(
|
|
desk=new_desk,
|
|
start_time=tp.start_time,
|
|
end_time=tp.end_time,
|
|
weekday=tp.weekday
|
|
)
|
|
|
|
# add time periods exceptions
|
|
for tpe in desk.timeperiodexception_set.all():
|
|
TimePeriodException.objects.create(
|
|
desk=new_desk,
|
|
source=tpe.source,
|
|
label=tpe.label,
|
|
start_datetime=tpe.start_datetime,
|
|
end_datetime=tpe.end_datetime,
|
|
recurrence_id=tpe.recurrence_id
|
|
)
|