Exemple #1
0
def group_edit_view(request):
    """returns current group information for editing and then collects
    all information that has been added by the user whether new or existing
    and edits the existing entries.
    """
    username = request.authenticated_userid
    group = Group.lookup_by_attribute(name=request.matchdict['group_name'])[0]
    criteria = Criteria.lookup_by_attribute(group=group)[0]
    if request.method == 'POST':
        criteria = Criteria.edit(location=request.params.getall('location'),
                                 taste=request.params.getall('taste'),
                                 diet=request.params.getall('diet'),
                                 cost=request.params.getall('cost'),
                                 age=request.params.getall('age'),
                                 id=criteria.id)
        group = Group.edit(name=request.params.get('name'),
                           description=request.params.get('description'),
                           id=group.id)
        return HTTPFound(request.route_url('group_detail',
                                           group_name=group.name))

    profile = {}
    profile['criteria'] = criteria
    profile['group'] = group
    profile['username'] = username

    return profile
Exemple #2
0
def group_detail_view(request):
    """returns current group information.  If recievng input form a form
    will add that user as a group member if they aren't already.  Will look
    to see whether a new discussion is being created and if so, add it
    to the group forum.  If a new post on an existing discussion is created
    that post will be added to the appropriate discussion.  Discussions
    are returned in reverse order.
    """
    username = request.authenticated_userid
    group = Group.lookup_by_attribute(name=request.matchdict['group_name'])[0]
    criteria = Criteria.lookup_by_attribute(group=group)[0]
    if request.method == 'POST':
        user = User.lookup_by_attribute(username=username)[0]
        user.groups.append(group)
        time = datetime.datetime.utcnow()
        if request.params.get('title'):
            title = request.params.get('title')
            group.forum[title] = [(request.params.get('post'), username, time)]
            group.edit(id=group.id, forum=group.forum)
        else:
            title = request.params.items()[0][0]
            post = request.params.items()[0][1]
            group.forum[title].append((post, username, time))
            group.edit(id=group.id, forum=group.forum)
        return HTTPFound(request.route_url(
                         'group_detail',
                         group_name=request.matchdict['group_name'],
                         ))
    profile = {}
    forum = OrderedDict()
    for _ in range(len(group.forum)):
        to_add = group.forum.popitem()
        forum[to_add[0]] = to_add[1]
    profile['forum'] = forum
    profile['criteria'] = criteria
    profile['group'] = group
    profile['username'] = username
    return profile