Ejemplo n.º 1
0
def view(request, form=None):
    obj_id = ObjectId(request.matchdict.get('contact_id'))
    contact = request.db.contacts.find_one({'_id': obj_id})
    full_name = get_full_name(contact)
    birthdate = get_birthdate(contact, request)
    links = {}
    linked_contacts = []
    for linked_id in get_linked_contact_ids(request.db, obj_id):
        linked_contact = request.db.contacts.find_one({'_id': linked_id})
        linked_contacts.append(linked_contact)
        links[str(linked_id)] = get_full_name(linked_contact)
    if form is None:
        action = request.route_url('edit', contact_id=obj_id)
        contact['links'] = links.keys()
        form_data = contact.copy()
        form_data['coord'] = ', '.join(map(str, form_data['coord']))
        form = make_edit_form(request, action)
        form = form.render(form_data)
        edit_error = False
    else:
        form = form.render()
        edit_error = True
    label_of = lambda field_name: ContactSchema()[field_name].title
    return {'api': TemplateAPI(request, full_name),
            'contact': contact,
            'get_full_name': get_full_name,
            'birthdate': birthdate,
            'links': linked_contacts,
            'form': form,
            'edit_error': edit_error,
            'label_of': label_of}
Ejemplo n.º 2
0
def edit(request):
    obj_id = ObjectId(request.matchdict.get('contact_id'))
    action = request.route_url('edit', contact_id=obj_id)
    form = make_edit_form(request, action)
    try:
        data = form.validate(request.POST.items())
    except ValidationFailure, e:
        return view(request, e)