示例#1
0
 def update_series (self, request, obj, form):
   if 'update' in form.cleaned_data and form.cleaned_data['update'] == 'all':
     if obj.series:
       obj.series.title = obj.title
       obj.series.save()
       
       for updobj in obj.__class__.objects.filter(series=obj.series).exclude(id=obj.id):
         update_attrs(obj, updobj, ('start_dt', 'end_dt'))
         copy_many_to_many(obj, updobj)
         copy_inlines(obj, updobj)
示例#2
0
 def update_series (self, request, obj, form):
   if form.cleaned_data.has_key('update') and form.cleaned_data['update'] == 'all':
     if obj.series:
       obj.series.title = obj.title
       obj.series.save()
       
       for updobj in obj.__class__.objects.filter(series=obj.series).exclude(id=obj.id):
         update_attrs(obj, updobj, ('start_dt', 'end_dt'))
         copy_many_to_many(obj, updobj)
         copy_inlines(obj, updobj)
示例#3
0
 def save_new_series (self, request, obj, form):
   if 'repeat' in form.cleaned_data and form.cleaned_data['repeat'] != 'none':
     delta = None
     end_delta = None
     if obj.series is None:
       new_series = Series(title=obj.title)
       new_series.save()
       obj.series = new_series
       obj.save()
       
     if form['repeat'].data == '15':
       delta = datetime.timedelta(minutes=15)
       
     elif form['repeat'].data == '30':
       delta = datetime.timedelta(minutes=30)
       
     elif form['repeat'].data == 'hour':
       delta = datetime.timedelta(hours=1)
       
     elif form.cleaned_data['repeat'] == 'day':
       delta = datetime.timedelta(days=1)
       
     elif form.cleaned_data['repeat'] == 'week':
       delta = datetime.timedelta(days=7)
       
     elif form.cleaned_data['repeat'] == 'month':
       delta = datetime.timedelta(days=28)
       
     elif form.cleaned_data['repeat'] == 'month_num':
       delta = 'month'
       
     elif form.cleaned_data['repeat'] == 'year':
       delta = 'year'
       
     if obj.end_dt:
       end_delta = obj.end_dt - obj.start_dt
       
     if delta:
       start = obj.start_dt
       tz = timezone.get_current_timezone()
       old_dst = start.dst()
       
       while 1:
         if delta == 'year':
           start = start.replace(year=start.year + 1)
           
         elif delta == 'month':
           if start.month == 12:
             start = start.replace(year=start.year + 1, month=1)
             
           else:
             start = start.replace(month=start.month + 1)
           
         else:
           start += delta
           
         if start <= form.cleaned_data['repeat_until']:
           if tz.zone != 'UTC':
             start = tz.normalize(start)
             if old_dst != start.dst():
               start = start + (old_dst - start.dst())
               
           newobj = copy_model_instance(obj)
           newobj.start_dt = start
           
           if obj.end_dt:
             newobj.end_dt = newobj.start_dt + end_delta
             
           newobj.save()
           copy_many_to_many(obj, newobj)
           copy_inlines(obj, newobj)
           old_dst = start.dst()
           
         else:
           break
示例#4
0
 def save_new_series (self, request, obj, form):
   if form.cleaned_data.has_key('repeat') and form.cleaned_data['repeat'] != 'none':
     delta = None
     end_delta = None
     if obj.series is None:
       new_series = Series(title=obj.title)
       new_series.save()
       obj.series = new_series
       obj.save()
       
     if form['repeat'].data == '15':
       delta = datetime.timedelta(minutes=15)
       
     elif form['repeat'].data == '30':
       delta = datetime.timedelta(minutes=30)
       
     elif form['repeat'].data == 'hour':
       delta = datetime.timedelta(hours=1)
       
     elif form.cleaned_data['repeat'] == 'day':
       delta = datetime.timedelta(days=1)
       
     elif form.cleaned_data['repeat'] == 'week':
       delta = datetime.timedelta(days=7)
       
     elif form.cleaned_data['repeat'] == 'month':
       delta = datetime.timedelta(days=28)
       
     elif form.cleaned_data['repeat'] == 'month_num':
       delta = 'month'
       
     elif form.cleaned_data['repeat'] == 'year':
       delta = 'year'
       
     if obj.end_dt:
       end_delta = obj.end_dt - obj.start_dt
       
     if delta:
       start = obj.start_dt
       tz = timezone.get_current_timezone()
       old_dst = start.dst()
       
       while 1:
         if delta == 'year':
           start = start.replace(year=start.year + 1)
           
         elif delta == 'month':
           if start.month == 12:
             start = start.replace(year=start.year + 1, month=1)
             
           else:
             start = start.replace(month=start.month + 1)
           
         else:
           start += delta
           
         if start <= form.cleaned_data['repeat_until']:
           if tz.zone != 'UTC':
             start = tz.normalize(start)
             if old_dst != start.dst():
               start = start + (old_dst - start.dst())
               
           newobj = copy_model_instance(obj)
           newobj.start_dt = start
           
           if obj.end_dt:
             newobj.end_dt = newobj.start_dt + end_delta
             
           newobj.save()
           copy_many_to_many(obj, newobj)
           copy_inlines(obj, newobj)
           old_dst = start.dst()
           
         else:
           break