def get_mail_barcode(barcode): db = MailService.findDatabaseForBarcode(app.dbs, barcode) mail = MailService.selectByBarcode(db, barcode) state = mail.statehistory ua_sender = UserAddressService.selectById(app.dbs['users'], mail.idsenderuseraddress) ua_receiver = UserAddressService.selectById(app.dbs['users'], mail.idreceiveruseraddress) m = { 'barcode': mail.barcode, 'sender': ua_sender.user.name, 'receiver': ua_receiver.user.name, 'date': str(state[0].date), 'history': [ {'status': s.idstate, 'text': str(s.date)} for s in state ] } for d in mail.statehistory: print d.date return m
def user_mails_sent(id): u = UserService.selectByStudentnumber(app.dbs['users'], id) dep = u.iddepartment addresses = UserAddressService.listByUser(app.dbs['users'], u.iduserthu) db = app.dbs[codes.codes['0{}'.format(dep)]] j = [] mails = MailService.selectBySenderUserAdresses( db, [a.iduseraddress for a in addresses] ) for m in mails: j.append(get_mail_barcode(m.barcode)) response.content_type = 'text/json; charset=utf-8' return j
def populate_user_db(user_database, ids): email_shift = 0 ids['address'] = {} ids['department'] = {} ids['user'] = {} ids['useraddress'] = [] for adress in adresses: ids['address'][adress] = AddressService.add(user_database, adress) for department in departments: ids['department'][department] = DepartmentService.add(user_database, department) for username in chinese_names: mail = "w_" + str(email_shift) + "@mail.tsinghua.edu.cn" ids['user'][username] = UserService.add(user_database, email_shift, username.decode('utf8'), mail, ids['department'][department]) email_shift = email_shift + 1 for _ in range(random.randint(1, 3)): addr_num = random.randint(0, len(adresses) - 1) ids['useraddress'].append(UserAddressService.add(user_database, ids['address'][adresses[addr_num]], ids['user'][username]))
db_d1 = Database('mailsystem_d1') databases = { 'users': db_users, 'D1': db_d1 } codes.codes = { "01": "D1" } codes.rev_codes = { "D1": "01" } a1 = AddressService.add(db_users, "A1") a2 = AddressService.add(db_users, "A2") d1 = DepartmentService.add(db_users, "D1") s1 = StateService.add(db_users, "S1") s2 = StateService.add(db_users, "S2") s3 = StateService.add(db_users, "S3") u1 = UserService.add(db_users, 2013400576, "U1", "[email protected]", d1) ua1 = UserAddressService.add(db_users, a1, u1) ua2 = UserAddressService.add(db_users, a2, u1) bc = MailService.add(databases, s1, ua1, ua2) las = UserAddressService.listByUser(db_users, u1) selectedMail = MailService.selectByBarcode(databases['D1'], bc) print las print a1 print d1 print s1 print u1 print ua1 print bc
def __findDatabaseForUserAddress(databases, iduseraddress): ua = UserAddressService.selectById(databases["users"], iduseraddress) if ua is None: return None return (ua.user.department.name, databases[ua.user.department.name])