def save(request): try: group_id = long(post_param(request, 'group_id')) group = get_group(group_id) require = check_user(group) if require: return redirect("/redirect/?%s" % require) amount = float(post_param(request, 'amount')) if amount <0: raise ValueError('amount can not be negative') payer_id = long(post_param(request, 'payer')) participants = map(lambda x: long(x), post_params(request, 'participants')) if len(participants) <1: raise ValueError('a meal with no attendee?') if payer_id not in participants: raise ValueError('...I have nothing to say.') date = None date_str = post_param(request, 'date') if date_str: date = datetime.strptime(date_str, "%Y/%m/%d") except: return redirect('/redirect/group/%s?%s' % (group_id, 'param')) else: save_fee(group, amount, payer_id, participants, date) return redirect('/redirect/group/%s' % group_id)
def save(request): password = post_param(request, 'password') name = post_param(request, 'name') members = post_param(request, 'members').split() group_id = post_param(request, 'group_id') owner_email = post_param(request, 'owner') group = None if group_id: try: group = get_group(long(group_id)) require = check_user(group) if require: return redirect("/redirect/?%s" % require) except: return redirect('/group/edit/?errs=group_id') for member in get_users(group): if member.name not in members: return redirect('/group/edit/%s?errs=members' % group.key().id()) members = save_users(members, group) owner = None try: owner = users.User(owner_email) except: owner = users.get_current_user() if group: group.members = members group.owner = owner else: group = Group(members = members, password = password, name = name, owner = owner) while len(group.summaries) < len(members): group.summaries.append(0.0) group.put() return redirect('/redirect/group/')