def test_creating_a_new_contact_and_save_it_to_db(self): #create a new contact contact = Contact() contact.name = 'Kostyantyn' contact.surname = 'Surename' contact.birthdate = timezone.now() contact.bio = 'My bio' contact.save() all_contacts = Contact.objects.all() self.assertEqual(len(all_contacts), 1) db_contact = all_contacts[0] self.assertEqual(db_contact.name, 'Kostyantyn') self.assertEqual(db_contact.surname, 'Surename') self.assertEqual(db_contact.birthdate, contact.birthdate) self.assertEqual(db_contact.bio, 'My bio') contactdetails = ContactDetail() contactdetails.jabber = 'jabber' contactdetails.email = '*****@*****.**' contactdetails.skype = 'skype' contactdetails.other = 'bla-bla-bla' contactdetails.save() contact.contactdetails = contactdetails contact.save() all_contacts = Contact.objects.all() self.assertEqual(len(all_contacts), 1) db_contact=all_contacts[0] self.assertEqual(db_contact.contactdetails.jabber, 'jabber') self.assertEqual(db_contact.contactdetails.email, '*****@*****.**') self.assertEqual(db_contact.contactdetails.skype, 'skype') self.assertEqual(db_contact.contactdetails.other, 'bla-bla-bla')
def view_contact_import(request): form = ImportContactsForm() message = '' errorList = [] if request.method == 'POST': form = ImportContactsForm(request.POST,request.FILES) my_file = request.FILES['file'] if form.is_valid(): with open('/var/www/yellowpage/media/xls/'+my_file.name, 'wb+') as destination: for chunk in my_file.chunks(): destination.write(chunk) xls = xlrd.open_workbook('/var/www/yellowpage/media/xls/'+my_file.name) sheet = xls.sheet_by_index(0) completed = 0 for row_index in range(1, sheet.nrows): try: code = sheet.cell_value(row_index,0).capitalize() #if str(code) == "": # contact = Contact(code=code) contact.surname = sheet.cell_value(row_index,1).capitalize() contact.name = sheet.cell_value(row_index,2).capitalize() contact.street = sheet.cell_value(row_index,3).capitalize() contact.zip = str(sheet.cell_value(row_index,4)) contact.city = sheet.cell_value(row_index,5).capitalize() contact.province = Province.objects.get(code=sheet.cell_value(row_index,6)) contact.email = sheet.cell_value(row_index,8) contact.phone_number = sheet.cell_value(row_index, 7) contact.birthdate = str(sheet.cell_value(row_index,12)) #Settore sectorString = str(sheet.cell_value(row_index, 10)) professionString = str(sheet.cell_value(row_index, 9)) profession = Work.objects.filter(name=professionString) if not profession: sector = Sector.objects.filter(name=sectorString) if not sector: sector = Sector(name=sectorString) sector.save() #Professione profession = Work(name=professionString, sector=Sector.objects.get(pk=sector.pk)) profession.save() else: profession = profession[0] contact.work = Work.objects.get(name=profession.name) contact.save() completed += 1 #Certificato cabinet = Cabinet.objects.get(pk=ContactCertFile.CABINET_ID) current_user = request.user file = ContactCertFile(contact=Contact.objects.get(pk=contact.pk)) uploadedFile = UploadedFile(title="Certificato Vuoto", cabinet=cabinet, file_ref="/cabinet/cert_empty.pdf", owner=current_user) uploadedFile.save() file.file = uploadedFile file.expiry = str(sheet.cell_value(row_index,11)) file.save() except Exception as e: print '%s (%s)' % (e.message, type(e)) errorList.append(sheet.cell_value(row_index,0).capitalize() + " " + e.message) message = 'Report Import: %d contatti importati correttamente. ' % completed return render_to_response('admin/contacts/view_contact_import.html',{'form':form, 'message':message, 'errorList': errorList}, context_instance=RequestContext(request))