Ejemplo n.º 1
0
def importCSV(request, template='contacts/person/import.html'):
    """ Import people from csv
    """

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

    registres = 0

    if request.method == 'POST':
        form = ImportCSVForm(request.POST, request.FILES)
        if form.is_valid():
            uploaded_file = request.FILES['fitxer']
            uploaded_file.read()
            reader = csv.reader(uploaded_file, delimiter=',', quotechar='"')

            for row in reader:
                person = Person()
                person.first_name = row[0]
                person.last_name = row[1]
                person.contact_type = row[3]
                person.id_card = row[5]

                base_slug = slugify("%s %s %s" % (p.first_name, p.last_name, p.secondlast_name))
                # hem de comprovar que no existeix cap persona amb aquest nom. Si no, hem d'afegir -1
                tmp_slug = base_slug
                trobat = True
                counter = 0

                while trobat:
                    try:
                        Person.objects.get(slug__iexact=tmp_slug)
                        counter = counter + 1
                        tmp_slug = "%s-%s" % (base_slug, str(counter))

                    except Person.DoesNotExist:
                        trobat = False

                person.slug = tmp_slug
                person.save()

                registres = registres + 1

    else:
        form = ImportCSVForm()

    return render_to_response(template, {'registres': registres, 'form': form}, RequestContext(request))