Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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/')