def map(request, template='contacts/person/map.html'):
    """Map with google maps

    :param template: Add a custom template.
    """

    if not request.user.is_authenticated():
        return HttpResponseRedirect('/login/?next=%s' % request.path)

    person_list = Person.objects.all()

    if request.method == 'POST':
        form = PersonFilterForm(request.POST)
        if form.is_valid():
            if form.cleaned_data['last_name']:
                person_list = person_list.filter(last_name__istartswith=form.cleaned_data['last_name'])

            if form.cleaned_data['id_card']:
                person_list = person_list.filter(id_card__istartswith=form.cleaned_data['id_card'])

            if form.cleaned_data['contact_type']:
                person_list = person_list.filter(contact_type=form.cleaned_data['contact_type'])

    else:
        form = PersonFilterForm()




    kwvars = {
        'person_list' : person_list,
        'form': form,
    }

    return render_to_response(template, kwvars, RequestContext(request))
def list(request, page=1, template='contacts/person/list.html'):
    """List of all the people.

    :param template: Add a custom template.
    """

    if not request.user.is_authenticated():
        return HttpResponseRedirect('/login/?next=%s' % request.path)

    person_list = Person.objects.all()

    if request.method == 'GET':
        form = PersonFilterForm(request.GET)
        if form.is_valid():
            if form.cleaned_data['last_name']:
                person_list = person_list.filter(last_name__istartswith=form.cleaned_data['last_name'])

            if form.cleaned_data['id_card']:
                person_list = person_list.filter(id_card__istartswith=form.cleaned_data['id_card'])

            if form.cleaned_data['contact_type']:
                person_list = person_list.filter(contact_type=form.cleaned_data['contact_type'])

            if form.cleaned_data['status']:
                person_list = person_list.filter(status=form.cleaned_data['status'])

            if form.cleaned_data['mailnotpaid_unsent']:
                person_list = person_list.filter(date_mailnotpaid__isnull = True).exclude(status='ok_all')

            if form.cleaned_data['mailregister_unsent']:
                person_list = person_list.filter(date_mailregister__isnull = True, status='ok_all')

            if form.cleaned_data['course']:
                person_list = person_list.filter(courses__in = form.cleaned_data['course'])


    else:
        form = PersonFilterForm()

    table = PersonTable(person_list, order_by = request.GET.get("sort",'-date_registration') )
    table.paginate(page=request.GET.get("page", 1))

    # Comprovam si hi ha nous registres per sincronitzar. Ho feim una vegada per sessio.
    if not request.session:
        request.session={}

    regs_not_sync = request.session.get('regs_not_sync',-1)
    if regs_not_sync == -1:
        regs_not_sync = check_pending_sync()
        request.session['regs_not_sync'] = regs_not_sync

    kwvars = {
        'table' : table,
        'form': form,
        'regs_not_sync': regs_not_sync,
    }

    return render_to_response(template, kwvars, RequestContext(request))