Changeset 3541

Show
Ignore:
Timestamp:
04/22/08 10:20:45 (7 months ago)
Author:
TerryBrown
Message:

Do not change completed milestones, added verbose flag and option to include rescheduling history in milestone description.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • reschedulescript/0.11/reschedule.py

    r2827 r3541  
    2828    parser.add_option("-c", "--commit", default=False, action='store_true', 
    2929                      help="commit changes to table") 
     30    parser.add_option("-C", "--comment", default=False, action='store_true', 
     31                      help="include 'Rescheduled from YYYY/MM/DD to YYYY/MM/DD' comments") 
     32    parser.add_option("-v", "--verbose", default=False, action='store_true', 
     33                      help="show SQL") 
    3034 
    3135    return parser 
     
    5357        conn = dbmod.connect(dsn=connectString) 
    5458    curs = conn.cursor() 
    55     fDue, fName, fNew = range(3)  # names of fields, fNew to be derived later 
    56     curs.execute('select due, name from %smilestone order by due' % opt.schema) 
     59 
     60    fDue, fName, fComp, fNew = range(4) 
     61    # names of fields, fNew to be derived later 
     62 
     63    curs.execute('select due, name, completed from %smilestone order by due' 
     64                 % opt.schema) 
    5765    res = [list(i) for i in curs.fetchall()] 
    5866 
     
    6876            setattr(opt, o, ts(time.strptime(getattr(opt, o), fmt))) 
    6977 
     78    comp = [] 
    7079    for i in res: 
    71         i.append( float(i[fDue]-opt.old) / (res[-1][fDue]-opt.old) * 
    72                   (opt.end - opt.start) + opt.start); 
    73         print '%s -> %s: %s' % (ds(i[fDue]), ds(i[fNew]), i[fName]) 
     80        if i[fComp]: 
     81            comp.append('%s due %s, completed %s'  
     82                % (i[fName],ds(i[fDue]),ds(i[fComp]))) 
     83        else: 
     84            i.append( float(i[fDue]-opt.old) / (res[-1][fDue]-opt.old) * 
     85                      (opt.end - opt.start) + opt.start); 
     86            print '%s -> %s: %s' % (ds(i[fDue]), ds(i[fNew]), i[fName]) 
    7487 
    75         if opt.commit: 
    7688            q = ( "update %smilestone set due = %d where name='%s'" 
    7789                  % (opt.schema, int(i[fNew]), i[fName])) 
    78             curs.execute(q) 
     90            if opt.verbose: print q 
     91            if opt.commit: 
     92                curs.execute(q) 
     93            if opt.comment: 
     94                q = ( "update %smilestone set description = description || " 
     95                      "'\\n\\nRescheduled from %s to %s' where name='%s'" 
     96                      % (opt.schema, ds(i[fDue]), ds(i[fNew]), i[fName])) 
     97                if opt.verbose: print q 
     98                if opt.commit: 
     99                    curs.execute(q) 
    79100 
    80101    if opt.commit: 
    81102        conn.commit() 
    82103 
     104    if comp: 
     105        print ('Completed milestones unchanged:\n%s'  
     106               % '\n'.join(['  '+i for i in comp])) 
     107 
    83108if __name__ == '__main__': 
    84109