Beispiel #1
0
def change_parents_due_dates(task):
    if not task.task_set.exists():
        return
    for index, parent in enumerate(task.task_set.all()):
        result = compare_dates(parent.due_date, task.due_date)
        if result[0] == 1 and result[1] == 0:
            parent.due_date = task.due_date
            parent.save()
            change_parents_due_dates(parent)
Beispiel #2
0
def update_children_due_date(user, task, new_date_object):
    for index, subtask in enumerate(task.subtasks.all()):
        #print >>sys.stderr, "updating subtask = " + subtask.name
        if subtask.due_date == None or \
            subtask.due_date.replace(tzinfo = None) > new_date_object:
            #print >>sys.stderr, "subtask due date replaced = " + str(new_date_object)
            subtask.due_date = new_date_object
            
            dates_diff = compare_dates(subtask.start_date, subtask.due_date)
            if dates_diff[0] and dates_diff[1]:
                #print >>sys.stderr, "subtask start date replaced = " + str(new_date_object)
                subtask.start_date = subtask.due_date
            update_log(user, subtask, LOG_TASK_MODIFY)
        subtask.save()
        update_children_due_date(user, subtask, subtask.due_date)
Beispiel #3
0
def change_task_date(user, task, new_date_object, date_type):
    if date_type == IS_START_DATE:
        task.start_date = new_date_object
    elif date_type == IS_DUE_DATE:
        task.due_date = new_date_object
        if task.task_set.exists():
            parent = task.task_set.all()[0]
            if new_date_object == None and parent.due_date != None:
                task.due_date = parent.due_date
            
    compare_result = compare_dates(task.start_date, task.due_date)
    if compare_result[0] and compare_result[1]:
        task.start_date = task.due_date
    task.save()
    return task
Beispiel #4
0
def update_parent_due_date(user, task, new_date_object):
    for index, parent in enumerate(task.task_set.all()):
        #print >>sys.stderr, "updating parent = " + parent.name + " due date = " + str(parent.due_date)
        if parent.due_date != None:
            if new_date_object == None:
                #print >>sys.stderr, "task due date replaced = " + str(new_date_object)
                task.due_date = parent.due_date
            elif parent.due_date.replace(tzinfo = None) < new_date_object:
                #print >>sys.stderr, "parent due date replaced = " + str(new_date_object)
                parent.due_date = new_date_object
            
            dates_diff = compare_dates(parent.start_date, parent.due_date)
            if dates_diff[0] and dates_diff[1]:
                #print >>sys.stderr, "parent start date replaced = " + str(new_date_object)
                parent.start_date = parent.due_date
            update_log(user, parent, LOG_TASK_MODIFY)
        parent.save()
        update_parent_due_date(user, parent, parent.due_date)