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
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