예제 #1
0
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}
예제 #2
0
 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)