示例#1
0
def get_tickets_for_structured_milestone(env,
                                         db,
                                         milestone,
                                         field='component',
                                         types=None):
    field = ['milestone'] + (field and (isinstance(field, basestring) and [
        field,
    ] or field) or [])
    mils = []
    sub_mils = [
        milestone,
    ]
    while sub_mils:
        mils.extend(sub_mils)
        cursor = db.cursor()
        cursor.execute(
            "SELECT m.name"
            " FROM milestone m,"
            " ticket t"
            " WHERE m.name=t.summary"
            " AND t.type=%%s"
            " AND t.milestone IN (%s)" % ("%s," * len(sub_mils))[:-1],
            tuple([milestone_ticket_type] + sub_mils))
        sub_mils = [
            sub_milestone for sub_milestone, in cursor
            if sub_milestone not in mils
        ]
    return get_tickets_for_milestones(db, mils,
                                      get_fields_by_names(env, field), types)
示例#2
0
 def _ids_to_tickets(self, ids):
     if ids:
         all_types = [type.name for type in Type.select(self.env)]
         fields = get_fields_by_names(self.env, ['summary', 'complexity', 'owner'])
         tickets = []
         for tkt_info in get_tickets_by_ids(self.env.get_db_cnx(), fields, ids):
             tkt_info['idx'] ='%02d' % all_types.index(tkt_info['type'])
             tickets.append(tkt_info)
         tickets.sort(key= lambda x: '%s %s' % (x['idx'], x['id']))
         return tickets
     return []
示例#3
0
 def _ids_to_tickets(self, ids):
     if ids:
         all_types = [type.name for type in Type.select(self.env)]
         fields = get_fields_by_names(self.env,
                                      ['summary', 'complexity', 'owner'])
         tickets = []
         for tkt_info in get_tickets_by_ids(self.env.get_db_cnx(), fields,
                                            ids):
             tkt_info['idx'] = '%02d' % all_types.index(tkt_info['type'])
             tickets.append(tkt_info)
         tickets.sort(key=lambda x: '%s %s' % (x['idx'], x['id']))
         return tickets
     return []
示例#4
0
def get_tickets_for_structured_milestone(env, db, milestone, field='component', types=None):
    field = ['milestone'] + ( field and (isinstance(field, basestring) and [field,] or field) or [])
    mils = []
    sub_mils = [milestone,]
    while sub_mils:
        mils.extend(sub_mils)
        cursor = db.cursor()
        cursor.execute("SELECT m.name"
                        " FROM milestone m,"
                             " ticket t"
                       " WHERE m.name=t.summary"
                         " AND t.type=%%s"
                         " AND t.milestone IN (%s)" % ("%s,"*len(sub_mils))[:-1],
                        tuple([milestone_ticket_type]+sub_mils))
        sub_mils = [sub_milestone for sub_milestone, in cursor if sub_milestone not in mils]
    return get_tickets_for_milestones(db, mils, get_fields_by_names(env, field), types)