def import_data(): model.clean_model("User", model.user_key()) model.clean_model("Day", model.day_key()) model.clean_model("Price", model.price_key()) data = fetch_data() users = [] days = [] prices = [] user_by_index = dict() user_by_nickname = dict() # extracting users for index, nickname in enumerate(data[0]): if not nickname in [None, "Date", "", "Group Ticket"]: user_id = nickname.lower() + "@swiftkey.net" if nickname == "James": user_id = "*****@*****.**" user_by_index[index] = user_id user_by_nickname[nickname] = user_id users.append({'nickname': nickname, 'user_id': user_id}) user = User(parent=model.user_key()) user.nickname = nickname.strip() user.user_id = user_id.strip() user.put() # extracting days for row in data: if not row[0] in ['', None, 'Date', 'BALANCE']: date = None custom_price = None buyer = None users_for_day = {} guests = {} for index, val in enumerate(row): if index == 0: date = datetime.datetime.strptime(val, "%m/%d/%Y").date() if index == 1 and is_number(val): custom_price = float(val) if index > 1 and index < 20 and index % 2 == 0: if val == 'Norm' or val == 'Yes' or val == 'Late' or val == 'No': user_id = user_by_index[index] users_for_day[user_id] = val if index == 20 and val != None and val != '---': buyer = user_by_nickname[val.strip()] days.append({'date': date, 'price': custom_price, 'buyer': buyer, 'users': users_for_day, 'guests': guests}) day = Day(parent=model.day_key()) day.date = date day.price = custom_price day.buyer = buyer day.users = json.dumps(users_for_day) day.guests = json.dumps(guests) day.put() # extracting prices prices.append({'since': datetime.date(2013, 1, 1), 'prices': {3: 45.60, 4: 46.00, 5: 69.00, 6: 91.20, 7: 91.60, 8: 92.00}}) # TODO: remove when done return {'users': users, 'prices': prices, 'days': days}
def get(self): answers_query = model.Answer.query(ancestor=model.user_key()) answers = answers_query.fetch() r = [item.asDict() for item in answers] self.SendJson(r)