예제 #1
0
파일: tasks.py 프로젝트: SUNET/meetingtools
def timed_full_import():
    years = [2009, 2010, 2011, 2012, 2013, 2014]
    months = [(1, 3), (4, 7), (8, 10), (9, 12)]
    for acc in ACCluster.objects.all():
        for year in years:
            for month in months:
                begin = datetime(year=year, month=month[0], day=1)
                end = datetime(year=year, month=month[1], day=31)
                with ac_api_client(acc) as api:
                    p = {'sort': 'asc', 'sort1': 'date-created', 'filter-type': 'meeting',
                         'filter-gte-date-created': begin.isoformat(), 'filter-lte-date-created': end.isoformat()}
                    r = api.request('report-bulk-consolidated-transactions', p, False)
                    nr = 0
                    ne = 0
                    for tx in r.et.findall(".//row"):
                        try:
                            tx = UserMeetingTransaction.create(acc, tx)
                            if tx:
                                rooms = Room.objects.filter(sco=tx.sco)
                                if len(rooms) == 1:
                                    room = rooms[0]
                                    if room.lastvisited is None or room.lastvisited < tx.date_closed:
                                        room.lastvisited = tx.date_created
                                        room.save()
                                nr += 1
                        except Exception, ex:
                            logging.error(ex)
                            ne += 1
                    logging.info("%s: Imported %d transactions with %d errors" % (acc, nr, ne))
예제 #2
0
파일: tasks.py 프로젝트: SUNET/meetingtools
def import_acc_sessions(acc,since=0,room_last_visited=False):
    with ac_api_client(acc) as api:
        p = {'sort': 'asc','sort1': 'date-created','filter-type': 'meeting'}

        begin = None
        if since > 0:
            begin = datetime.now()-timedelta(seconds=since)
            begin = begin.replace(microsecond=0)

        if begin is not None:
            p['filter-gte-date-created'] = begin.isoformat()

        r = api.request('report-bulk-consolidated-transactions',p,True)
        nr = 0
        ne = 0
        for tx in r.et.findall(".//row"):
            try:
                tx = UserMeetingTransaction.create(acc,tx)
                if tx:
                    if room_last_visited:
                        rooms = Room.objects.filter(sco=tx.sco)
                        if len(rooms) == 1:
                            room = rooms[0]
                            if room.lastvisited is None or room.lastvisited < tx.date_closed:
                                room.lastvisited = tx.date_created
                                room.save()
                    nr += 1
            except Exception,ex:
                logging.error(ex)
                ne += 1
        logging.info("%s: Imported %d transactions with %d errors" % (acc,nr,ne))