def handle(self, *args, **options): f = xlrd.open_workbook(args[0]) sh = f.sheet_by_index(0) kont = 1 ercnt =1 CDICT = {'legutiano':'legutio', 'ribera-alta':'erriberagoitia', } uloc = {} for rownum in range(sh.nrows)[1:]: fields = sh.row_values(rownum) if len(fields)!=27: print 'Tenemos mas o menos de 27 campos' n = 1 for field in fields: print n, field n = n+1 break else: (titulo, denom, slug, ent_origen, cod_origen, rcat, direc1, direc2, cp, pob1, pob, loc, desc, lat, lon, tel, fax, url, foto_x, foto_x_tit, foto_x_alt, itinerarios, acc_fis, acc_vis, acc_aud, acc_int, acc_org ) = fields[:27] place = Place() place.name = titulo place.slug = slugify(slug.split('/')[2], instance=place) ent_origen = 'ejgv-tur-rest' place.source = ent_origen place.source_id = cod_origen cat = slugify(rcat) cat = self.RDICT.get(cat,cat) rel_cat = Category.objects.filter(slug=cat) if len(rel_cat)>0: cat_obj = Category.objects.get(slug=cat) else: parentcat = Category.objects.get(slug='restaurant') cat_obj = Category(slug=cat,name=cat,parent=parentcat) cat_obj.save() place.category = cat_obj place.address1 = direc1 place.address2 = direc2 if len(cp)<5: cp = "0%s" % cp place.postalcode = cp.strip() location_slug = slugify(pob) if CDICT.has_key(location_slug): location_slug = CDICT[location_slug] location = Location.objects.filter(slug__startswith=location_slug) if location: loc_obj = location[0] else: print ercnt,'ERROREA TOKI EZEZAGUNA', titulo, cp, pob, kont uloc[pob]=uloc.get(pob,0)+1 ercnt = ercnt+1 break place.city = loc_obj place.locality = loc place.description = desc if lat: place.lat = lat if lon: place.lon = lon place.tlf = tel[:30] place.fax = fax[:15] place.url = url place.email = '' try: print kont, titulo, place.slug, loc_obj.name, place.cp except: print place.slug print "##%s##" % tel, len(tel) place.save() access = Access() access.aphysic = self.ADICT[acc_fis.lower().strip()] access.avisual = self.ADICT[acc_vis.lower().strip()] access.aaudio = self.ADICT[acc_aud.lower().strip()] access.aintelec = self.ADICT[acc_int.lower().strip()] access.aorganic = self.ADICT[acc_org.lower().strip()] access.place = place access.save() foto_x = foto_x.replace('http://turismo.euskadi.net/contenidos/a_alojamiento/ ','http://turismo.euskadi.net/x65-12375/es/contenidos/a_alojamiento/') print foto_x t_place = place #Place.objects.get(slug='bib-ikaztegieta') has_point = foto_x.split('/')[-1].find('.') if has_point>-1: image = loadUrlImage(foto_x, t_place, foto_x_tit, 'jpg', ) kont += 1 print uloc
def handle(self, *args, **options): saving = len(args)>1 and args[1] or 0 line = len(args)>2 and int(args[2]) or 1 filename = args[0] full_path = "%s/%s" % (IMPORT_FILES_FOLDER,filename) f = xlrd.open_workbook(full_path) sh = f.sheet_by_index(0) kont = 1 ercnt =1 CDICT = {'legutiano':'legutio', 'ribera-alta':'erriberagoitia', } uloc = {} new_rest = 0 for rownum in range(sh.nrows)[line:]: fields = sh.row_values(rownum) if len(fields)!=26: print 'Tenemos mas o menos de 25 campos' n = 1 for field in fields: print n, field n = n+1 break else: (titulo, slug, ent_origen, cod_origen, rcat, direc1, direc2, cp, pob, loc, desc, lat, lon, tel, fax, url, foto_x, foto_x_tit, foto_x_alt, itinerarios, acc_fis, acc_vis, acc_aud, acc_int, acc_org, title_code ) = fields[:26] print '############################' print kont, titulo pattern = re.compile("\s+\d+") translation = False ent_origen = 'ejgv-tur-rest' places = Place.objects.filter(source_id=cod_origen, source=ent_origen) if len(places)<1: places = Place.objects.filter(source_id=str(int(cod_origen)), source=ent_origen) if len(places)>0: place = places[0] if '_eu' in filename and place: place.description_eu = strip_tags(desc) translation = True elif '_en' in filename and place: place.description_en = strip_tags(desc) translation = True elif '_eu' in filename or '_en' in filename: translation = True if translation: place.save() continue #GET USER!!!! author = User.objects.get(username=ent_origen) location_slug = slugify(pob) if CDICT.has_key(location_slug): location_slug = CDICT[location_slug] location = Location.objects.filter(slug__startswith=location_slug) if location: loc_obj = location[0] else: print ercnt,'WARNING: New place', titulo, cp, pob, kont uloc[pob]=uloc.get(pob,0)+1 ercnt = ercnt+1 break if len(places)>0: print 'EDIT:', slug, cod_origen place = places[0] else: print 'NEW:', slug, cod_origen place = Place() place.slug = slugify(slug.split('/')[2],instance=place) if rcat: cat = slugify(rcat) cat = self.RDICT.get(cat, cat) rel_cat = Category.objects.filter(slug=cat) if len(rel_cat)>0: cat_obj = Category.objects.get(slug=cat) else: print 'WARNING: Missing cat:', cat parentcat = Category.objects.get(slug='sleep') cat_obj = Category(slug=cat, name=cat, name_es=cat, name_eu=cat, name_en=cat, parent=parentcat) if saving: cat_obj.save() else: cat_obj = Category.objects.get(slug='sleep') place.category = cat_obj new_rest += 1 if title_code: place.name = "%s %s" % (titulo, title_code) else: place.name = titulo place.description_es = strip_tags(desc) repl = pattern.search(direc1) if "," not in direc1 and "km" not in direc1 and repl: repl = repl.group() direc1 = direc1.replace(repl, ",%s" % repl).replace(" ", " ").replace(" ,", ",") place.address1 = direc1.replace(u" Nº", "") place.address2 = direc2 if len(cp) < 5: cp = "0%s" % cp place.postalcode = cp.strip() try: place.city = loc_obj except: pass place.locality = pob != loc and loc or "" place.description = strip_tags(desc) place.source = ent_origen place.source_id = "%d" % int(cod_origen) if lat: place.lat = str(lat) if lon: place.lon = str(lon) #SET USER!!!!! place.author = author place.tlf = ''.join(tel[:30].split()) place.fax = ''.join(fax[:15].split()) place.url = url place.url_es = url place.url_eu = url place.url_en = url place.email = '' if saving: place.save() accesses = Access.objects.filter(place=place) if len(accesses)>0: access = accesses[0] else: access = Access() access.place = place access.aphysic = self.ADICT[acc_fis.lower().strip()] access.avisual = self.ADICT[acc_vis.lower().strip()] access.aaudio = self.ADICT[acc_aud.lower().strip()] access.aintelec = self.ADICT[acc_int.lower().strip()] access.aorganic = self.ADICT[acc_org.lower().strip()] if saving: access.save() #print foto_x t_place = place has_point = foto_x.split('/')[-1].find('.') if has_point>-1: if saving: image = loadUrlImage(foto_x, t_place, foto_x_tit, 'jpg', ) kont += 1 print "New restaurants: %d" % (new_rest) print uloc
def handle(self, *args, **options): saving = len(args) > 1 and args[1] or 0 filename = args[0] full_path = "%s/%s" % (IMPORT_FILES_FOLDER, filename) f = xlrd.open_workbook(full_path) sh = f.sheet_by_index(0) kont = 1 now = datetime.now() print 'NOW!:' print now cat = 'library' cat_obj = Category.objects.get(slug=cat) for rownum in range(sh.nrows)[1:]: fields = sh.row_values(rownum) if len(fields) != 51: print 'Tenemos mas o menos de 51 campos' n = 1 for field in fields: print n, field n = n + 1 break else: (cod_origen, titulo, slug, ent_origen, cod_origen_vacio, cat, direc1, direc2, cp, pob, city, desc, tel, fax, url, email, foto, lat, lon, foto_x, foto_x_tit, foto_x_alt, acc_fis, acc_vis, acc_aud, acc_int, acc_org, tipo_biblio, ano_inicio, instit, tipo_inst, open_times_eu, open_times_es, open_times_s_eu, open_times_s_es, tipo_acceso, tipo_centro, tematica_general, ser_consulta, ser_reprografia, ser_hemeroteca, ser_wifi, ser_selectiva, ser_bol_novedades, ser_prestamo, ser_prestamo_inter, ser_prestamo_domic, ser_infor_bibliografica, ser_internet_usuarios, ser_acceso_bbdd, latlon) = fields[:51] # Set fields because not used anymore loc = '' tipo_biblio = '' access_type = '' center_type = '' tem_general = '' institution = '' institution_type = '' cod_origen = "%d" % int(cod_origen) ent_origen = 'ejgv_biblio' author = User.objects.get(username=ent_origen) location_slug = slugify(city or pob) location = Location.objects.filter(slug__startswith=location_slug) if location: loc_obj = location[0] else: print 'ERROREA', location_slug break places = Place.objects.filter(source_id=cod_origen, source=ent_origen) if len(places) > 0: place = places[0] print 'EDIT:', place.slug, place.source, place.source_id else: place = Place() place.slug = slugify(titulo, instance=place) print 'NEW:', slug, cod_origen place.name = titulo place.category = cat_obj place.description_es = desc place.description_eu = desc place.description_en = desc place.address1 = direc1 place.address2 = direc2 if len(cp) < 5: cp = "0%s" % cp place.postalcode = cp.strip() place.city = loc_obj place.locality = loc place.source = ent_origen place.source_id = cod_origen place.author = author try: (lat, lon) = latlon.split(',') except: print 'LATLONERROR', place.slug, latlon pass if lat: place.lat = lat if lon: place.lon = lon print place.lat, place.lon place.tlf = tel place.fax = fax place.url = url place.email = email place.modified_date = now # ACCESS place.aphysic = self.ADICT[acc_fis.lower().strip()] place.avisual = self.ADICT[acc_vis.lower().strip()] place.aaudio = self.ADICT[acc_aud.lower().strip()] place.aintelec = self.ADICT[acc_int.lower().strip()] place.aorganic = self.ADICT[acc_org.lower().strip()] #get photo URL: if foto: startx = foto.find('img src=') endx = foto.find('"', startx + 10) foto_x = foto[startx + 9:endx] if saving: place.save() #Load foto_x print foto_x t_place = place has_point = foto_x.split('/')[-1].find('.') if not foto_x_tit: foto_x_tit = place.name[:] if has_point > -1: if saving: image = loadUrlImage( foto_x, t_place, foto_x_tit, 'jpg', ) #BIBLIO try: biblio = place.biblio.all()[0] except: biblio = Biblio() biblio.place = place biblio.btype = self.BDICT[tipo_biblio.strip()] if ano_inicio: ano_conv = str(int(ano_inicio)).strip().replace('.', '') else: ano_conv = '' try: biblio.start_year = int(ano_conv) except: biblio.start_year = 0 biblio.institution = institution_type biblio.institution_type = self.IDICT[institution_type.strip()] open_times = "%s %s" % (open_times_eu, open_times_es) biblio.open_times = open_times[:250] biblio.access_type = self.ACDICT[access_type.strip()] biblio.center_type = self.CDICT[center_type.strip()] if saving: biblio.save() tem_infantil = '' tem_religioso = '' bibtopics = { 'general': '1', 'infantil': tem_infantil, 'religioso': tem_religioso } for k, v in bibtopics.items(): if v: bibtopic = Bibtopic.objects.filter(name=k) if bibtopic: bibtopic_obj = bibtopic[0] else: print 'ERROR: no bibtopic called %s' % k bibtopic_obj = Bibtopic() bibtopic_obj.name = k if saving: bibtopic_obj.save() biblio.topics.add(bibtopic_obj) bibservices = { 'consulta': ser_consulta, 'reprografia': ser_reprografia, 'hemeroteca': ser_hemeroteca, 'wifi': ser_wifi, 'selectiva': ser_selectiva, 'bol_novedades': ser_bol_novedades, 'prestamo': ser_prestamo, 'prestamo_inter': ser_prestamo_inter, 'prestamo_domic': ser_prestamo_domic, 'infor_bibliografica': ser_infor_bibliografica, 'internet_usuarios': ser_internet_usuarios, 'acceso_bbdd': ser_acceso_bbdd } for k, v in bibservices.items(): if v: bibservice = Bibservice.objects.filter(name=k) if bibservice: bibservice_obj = bibservice[0] else: print 'ERROR: no bibservice called %s' % k bibservice_obj = Bibservice() bibservice_obj.name = k if saving: bibservice_obj.save() biblio.services.add(bibservice_obj) if saving: biblio.save() kont += 1
def handle(self, *args, **options): saving = len(args)>1 and args[1] or 0 filename = args[0] full_path = "%s/%s" % (IMPORT_FILES_FOLDER,filename) f = xlrd.open_workbook(full_path) sh = f.sheet_by_index(0) kont = 1 now = datetime.now() print 'NOW!:' print now cat = 'library' cat_obj = Category.objects.get(slug=cat) for rownum in range(sh.nrows)[1:]: fields = sh.row_values(rownum) if len(fields)!=51: print 'Tenemos mas o menos de 51 campos' n = 1 for field in fields: print n, field n = n+1 break else: (cod_origen, titulo, slug, ent_origen, cod_origen_vacio, cat, direc1, direc2, cp, pob, city, desc, tel, fax, url, email, foto, lat, lon, foto_x, foto_x_tit, foto_x_alt, acc_fis, acc_vis, acc_aud, acc_int, acc_org, tipo_biblio, ano_inicio, instit, tipo_inst, open_times_eu, open_times_es, open_times_s_eu, open_times_s_es, tipo_acceso, tipo_centro, tematica_general, ser_consulta, ser_reprografia, ser_hemeroteca, ser_wifi, ser_selectiva, ser_bol_novedades, ser_prestamo, ser_prestamo_inter, ser_prestamo_domic, ser_infor_bibliografica, ser_internet_usuarios, ser_acceso_bbdd, latlon) = fields[:51] # Set fields because not used anymore loc = '' tipo_biblio = '' access_type = '' center_type = '' tem_general = '' institution = '' institution_type = '' cod_origen = "%d" % int(cod_origen) ent_origen = 'ejgv_biblio' author = User.objects.get(username=ent_origen) location_slug = slugify(city or pob) location = Location.objects.filter(slug__startswith=location_slug) if location: loc_obj = location[0] else: print 'ERROREA', location_slug break places = Place.objects.filter(source_id=cod_origen, source=ent_origen) if len(places)>0: place = places[0] print 'EDIT:', place.slug, place.source, place.source_id else: place = Place() place.slug = slugify(titulo, instance=place) print 'NEW:', slug, cod_origen place.name = titulo place.category = cat_obj place.description_es = desc place.description_eu = desc place.description_en = desc place.address1 = direc1 place.address2 = direc2 if len(cp)<5: cp = "0%s" % cp place.postalcode = cp.strip() place.city = loc_obj place.locality = loc place.source = ent_origen place.source_id = cod_origen place.author = author try: (lat,lon) = latlon.split(',') except: print 'LATLONERROR', place.slug, latlon pass if lat: place.lat = lat if lon: place.lon = lon print place.lat, place.lon place.tlf = tel place.fax = fax place.url = url place.email = email place.modified_date = now # ACCESS place.aphysic = self.ADICT[acc_fis.lower().strip()] place.avisual = self.ADICT[acc_vis.lower().strip()] place.aaudio = self.ADICT[acc_aud.lower().strip()] place.aintelec = self.ADICT[acc_int.lower().strip()] place.aorganic = self.ADICT[acc_org.lower().strip()] #get photo URL: if foto: startx = foto.find('img src=') endx = foto.find('"', startx+10) foto_x = foto[startx+9:endx] if saving: place.save() #Load foto_x print foto_x t_place = place has_point = foto_x.split('/')[-1].find('.') if not foto_x_tit: foto_x_tit = place.name[:] if has_point>-1: if saving: image = loadUrlImage(foto_x, t_place, foto_x_tit, 'jpg', ) #BIBLIO try: biblio = place.biblio.all()[0] except: biblio = Biblio() biblio.place = place biblio.btype = self.BDICT[tipo_biblio.strip()] if ano_inicio: ano_conv = str(int(ano_inicio)).strip().replace('.','') else: ano_conv = '' try: biblio.start_year = int(ano_conv) except: biblio.start_year = 0 biblio.institution = institution_type biblio.institution_type = self.IDICT[institution_type.strip()] open_times = "%s %s" % (open_times_eu, open_times_es) biblio.open_times = open_times[:250] biblio.access_type = self.ACDICT[access_type.strip()] biblio.center_type = self.CDICT[center_type.strip()] if saving: biblio.save() tem_infantil = '' tem_religioso = '' bibtopics = {'general':'1', 'infantil':tem_infantil, 'religioso':tem_religioso} for k,v in bibtopics.items(): if v: bibtopic = Bibtopic.objects.filter(name=k) if bibtopic: bibtopic_obj = bibtopic[0] else: print 'ERROR: no bibtopic called %s' % k bibtopic_obj = Bibtopic() bibtopic_obj.name = k if saving: bibtopic_obj.save() biblio.topics.add(bibtopic_obj) bibservices = {'consulta':ser_consulta, 'reprografia':ser_reprografia, 'hemeroteca':ser_hemeroteca, 'wifi':ser_wifi, 'selectiva':ser_selectiva, 'bol_novedades':ser_bol_novedades, 'prestamo':ser_prestamo, 'prestamo_inter':ser_prestamo_inter, 'prestamo_domic':ser_prestamo_domic, 'infor_bibliografica':ser_infor_bibliografica, 'internet_usuarios':ser_internet_usuarios, 'acceso_bbdd':ser_acceso_bbdd } for k,v in bibservices.items(): if v: bibservice = Bibservice.objects.filter(name=k) if bibservice: bibservice_obj = bibservice[0] else: print 'ERROR: no bibservice called %s' % k bibservice_obj = Bibservice() bibservice_obj.name = k if saving: bibservice_obj.save() biblio.services.add(bibservice_obj) if saving: biblio.save() kont += 1
def handle(self, *args, **options): saving = len(args)>1 and args[1] or 0 filename = args[0] line = len(args)>2 and int(args[2]) or 1 full_path = "%s/%s" % (IMPORT_FILES_FOLDER,filename) f = xlrd.open_workbook(full_path) sh = f.sheet_by_index(0) kont = 1 ercnt =1 CDICT = {'legutiano':'legutio', 'ribera-alta':'erriberagoitia', } uloc = {} for rownum in range(sh.nrows)[line:]: fields = sh.row_values(rownum) if len(fields)!=25: print 'Tenemos mas o menos de 24 campos' n = 1 for field in fields: print n, field n = n+1 break else: (titulo, slug, ent_origen, cod_origen, direc1, direc2, cp, pob, loc, desc, lat, lon, tel, fax, url, foto_x, foto_x_tit, foto_x_alt, itinerarios, acc_fis, acc_vis, acc_aud, acc_int, acc_org, title_code ) = fields[:26] translation = False ent_origen = 'ejgv-tur-infos' places = Place.objects.filter(source_id=cod_origen, source=ent_origen) if len(places)<1: places = Place.objects.filter(source_id=str(int(cod_origen)), source=ent_origen) if len(places)>0: place = places[0] if '_eu' in filename and place: place.description_eu = strip_tags(desc) translation = True elif '_en' in filename and place: place.description_en = strip_tags(desc) translation = True elif '_eu' in filename or '_en' in filename: translation = True if translation: place.save() continue if 'oficinas' in filename: cat_obj = Category.objects.get(slug='tourist-office') elif 'centros' in filename: cat_obj = Category.objects.get(slug='interpretation-centre') else: cat_obj = Category.objects.get(slug='tourism') #GET USER author = User.objects.get(username=ent_origen) location_slug = slugify(pob) if CDICT.has_key(location_slug): location_slug = CDICT[location_slug] location = Location.objects.filter(slug__startswith=location_slug) if location: loc_obj = location[0] else: print ercnt,'WARNING: New place', titulo, cp, pob, kont uloc[pob]=uloc.get(pob,0)+1 ercnt = ercnt+1 break if len(places)>0: place = places[0] print 'EDIT:', place.slug, cod_origen else: place = Place() print slug place.slug = slugify(slug.split('/')[2],instance=place) print 'NEW:', slug, cod_origen if title_code: place.name = "%s %s" % (titulo, title_code) else: place.name = titulo place.category = cat_obj place.description_es = strip_tags(desc) place.address1 = direc1 place.address2 = direc2 if len(cp)<5: cp = "0%s" % cp place.postalcode = cp.strip() try: place.city = loc_obj except: pass place.locality = pob != loc and loc or "" place.description = strip_tags(desc) #SET USER place.author = author place.source = ent_origen place.source_id = "%d" % int(cod_origen) if lat: place.lat = str(lat) if lon: place.lon = str(lon) place.tlf = ''.join(tel[:30].split()) place.fax = ''.join(fax[:15].split()) place.url = url place.url_es = url place.url_eu = url place.url_en = url place.email = '' if saving: place.save() accesses = Access.objects.filter(place=place) if len(accesses)>0: access = accesses[0] else: access = Access() access.place = place access.aphysic = self.ADICT[acc_fis.lower().strip()] access.avisual = self.ADICT[acc_vis.lower().strip()] access.aaudio = self.ADICT[acc_aud.lower().strip()] access.aintelec = self.ADICT[acc_int.lower().strip()] access.aorganic = self.ADICT[acc_org.lower().strip()] if saving: access.save() #print foto_x t_place = place has_point = foto_x.split('/')[-1].find('.') if has_point>-1: if saving: image = loadUrlImage(foto_x, t_place, foto_x_tit, 'jpg', ) kont += 1 print uloc