def print_submitted_tickets_report(start_date, end_date=datetime.now()): print "Producing EMI support summary report for period %s-%s. Please be patient..." % (start_date.strftime(date_format_str),end_date.strftime(date_format_str)) print "EMI SUs covered (%d): \n%s" % (len(emi_support_units),"\n".join(sorted(emi_support_units.keys()))) tickets = get_tickets(emi_submitted_tickets_in_period(start_date,end_date)) status_classification = classify_status(tickets) priority_classification = classify_priority(tickets) su_classification = classify_su(tickets, sus=emi_support_units.keys()) report_template = Template("""${numTickets} tickets were submitted in period ${startDate}-${endDate}. The status for these tickets is currently: ${numAssigned} assigned, ${numInProgress} in progress, ${numOnHold} on hold, ${numReopened} reopened, ${numWaitingForReply} waiting for reply, ${numSolved} solved, ${numUnsolved} unsolved, ${numClosed} closed, ${numVerified} verified. The current priority classification of the above tickets is: ${numTopPriority} top priority, ${numVeryUrgent} very urgent, ${numUrgent} urgent, ${numLessUrgent} less urgent.""") keys = {'numTickets': len(tickets), 'startDate': start_date.strftime(date_format_str), 'endDate': end_date.strftime(date_format_str), 'numAssigned': len(status_classification['assigned']), 'numInProgress': len(status_classification['in progress']), 'numOnHold': len(status_classification['on hold']), 'numReopened': len(status_classification['reopened']), 'numSolved': len(status_classification['solved']), 'numUnsolved': len(status_classification['unsolved']), 'numClosed' : len(status_classification['closed']), 'numVerified': len(status_classification['verified']), 'numWaitingForReply': len(status_classification['waiting for reply']), 'numTopPriority': len(priority_classification['top priority']), 'numVeryUrgent': len(priority_classification['very urgent']), 'numUrgent': len(priority_classification['urgent']), 'numLessUrgent': len(priority_classification['less urgent']) } print report_template.safe_substitute(keys) sus = sorted(su_classification.keys()) print print "The above tickets are currently assigned to the following SUs:" for su in sus: print "\n%s: %d" % (su, len(su_classification[su])) for t in su_classification[su]: print "\thttps://ggus.eu/tech/ticket_show.php?ticket=%s (%s) %s " % (ticket_id(t), ticket_priority(t), ticket_status(t))
def print_ksa_1_1(start_date,end_date=datetime.now()): print >>sys.stderr, "Producing KSA1.1 kpi csv file for period %s-%s. Please be patient..." % (start_date.strftime(date_format_str),end_date.strftime(date_format_str)) csv_header = "su,%s" % ','.join(priorities) tickets = get_tickets(emi_submitted_tickets_in_period(start_date, end_date)) su_classification = classify_su(tickets, sus=emi_support_units.keys()) sus = sorted(su_classification.keys(), key=str.lower) print csv_header for su in sus: prios = classify_priority(su_classification[su]) print "%s,%d,%d,%d,%d" % (su, len(prios[priorities[0]]), len(prios[priorities[1]]), len(prios[priorities[2]]), len(prios[priorities[3]]))