def write(request): if request.method == "POST" : ret = "OK" user = User() user.userId = int(request.POST["userId"]) place = Place() place.placeId = int(request.POST["placeId"]) if Review.objects.filter(reviewUser=user, reviewPlace=place).exists(): ret = "EXIST" else: review = Review() review.reviewUser = user review.reviewPlace = place review.reviewPointPrice = int(request.POST["reviewPointPrice"]) review.reviewPointService = int(request.POST["reviewPointService"]) review.reviewPointLocation = int(request.POST["reviewPointLocation"]) review.reviewPointCondition = int(request.POST["reviewPointCondition"]) review.reviewPointComfort = int(request.POST["reviewPointComfort"]) review.reviewText = request.POST["reviewText"] review.save() return HttpResponse(ret) else : return HttpResponse("what?")
class RoutesTest(TestCase): def setUp(self): self.route = Route(name="Route 101") self.place1 = Place(name="Villa Venezuela") self.place2 = Place(name="Villa Libertad") self.route.save() self.place1.save() self.place2.save() self.route.places.add(self.place1, self.place2) self.route.save() def test_routes_adds_places(self): """ Creating a route and adding a place to it """ # Getting the object from the database route = Route.objects.get(name="Route 101") self.assertEqual(route.places.count(), 2) def test_add_place_from_route(self): """ Test the method add_place """ self.route.add_place("14 De Septiembre") self.route.save() self.assertEqual(self.route.places.count(), 3) def tearDown(self): Place.objects.all().delete() Route.objects.all().delete()
def test_place_property(self): place = Place() place.save() self.assertEqual(LegacyPlace.objects.count(), 0) lp, is_created = LegacyPlace.get_or_create_smart('14720610.kakao') self.assertEqual(LegacyPlace.objects.count(), 1) self.assertEqual(lp.place, None) self.assertEqual(lp.lp_type, LP_TYPE['kakao']) lp2, is_created = LegacyPlace.get_or_create_smart('14720610.kakao') self.assertEqual(LegacyPlace.objects.count(), 1) self.assertEqual(lp2.place, None) self.assertEqual(lp2.lp_type, LP_TYPE['kakao']) self.assertEqual(lp2, lp) lp3, is_created = LegacyPlace.get_or_create_smart('15738374.kakao') self.assertEqual(LegacyPlace.objects.count(), 2) self.assertEqual(lp3.place, None) self.assertEqual(lp3.lp_type, LP_TYPE['kakao']) self.assertNotEqual(lp3, lp) lp.place = place lp.save() self.assertEqual(place.lps.first(), lp) lp3.place = place with self.assertRaises(IntegrityError): lp3.save()
def setUp(self): super(UserPlaceTest, self).setUp() self.place = Place() point = GEOSGeometry('POINT(127.1037430 37.3997320)', srid=4326) self.place.lonLat = point self.place.save() self.vd = VD() self.vd.save()
def add_place(self, name): """Adds a place from the route model""" from place.models import Place if not Place.objects.filter(name=name).exists(): place = Place(name=name) place.save() self.places.add(place) self.save()
def setUp(self): self.route = Route(name="Route 101") self.place1 = Place(name="Villa Venezuela") self.place2 = Place(name="Villa Libertad") self.route.save() self.place1.save() self.place2.save() self.route.places.add(self.place1, self.place2) self.route.save()
def search(request): if request.method == "GET": query = request.GET.get("q", "") flag = False places = Place.objects(Q(name__iexact=query))# | Q(address__icontains=query)) if places.first() == None: places = set(list(Place.objects(Q(name__icontains=query)))) if len(places) < 20: places = places.union(claw({"query":query})) flag = True return render_to_response('search.html', {'places': places, 'flag': flag}, context_instance=RequestContext(request))
class PlacesTest(TestCase): def setUp(self): self.route = Route(name="Route 101") self.place1 = Place(name="Villa Venezuela") self.place2 = Place(name="Villa Libertad") self.route.save() self.place1.save() self.place2.save() self.route.places.add(self.place1, self.place2) self.route.save() def test_places_can_get_route(self): """docstring for test_places_can_get_route""" place1 = Place.objects.get(name="Villa Venezuela") place2 = Place.objects.get(name="Villa Libertad") self.assertEqual(place1.routes.all()[0], self.route) self.assertEqual(place2.routes.all()[0], self.route) def test_add_route_from_place(self): self.place1.add_route("Ruta 112") self.place1.save() self.assertEqual(self.place1.routes.count(), 2) def tearDown(self): Place.objects.all().delete() Route.objects.all().delete()
def test_lonLat_column(self): place = Place() point1 = GEOSGeometry('POINT(127.1037430 37.3997320)', srid=4326) place.lonLat = point1 place.save() saved = Place.objects.first() self.assertEqual(place.lonLat, point1) self.assertEqual(saved.lonLat, point1) point2 = GEOSGeometry('POINT(127.107316 37.400998)', srid=4326) qs1 = Place.objects.filter(lonLat__distance_lte=(point2, D(m=100))) self.assertEqual(len(qs1), 0) qs2 = Place.objects.filter(lonLat__distance_lte=(point2, D(m=1000))) self.assertEqual(len(qs2), 1)
def test_placeName_column(self): place = Place() test_data = '능이향기' placeName = PlaceName(content=test_data) placeName.save() place.placeName = placeName place.save() saved = Place.objects.first() self.assertEqual(place.placeName, placeName) self.assertEqual(place.placeName.content, test_data) self.assertEqual(saved, place) self.assertEqual(saved.placeName, placeName) self.assertEqual(saved.placeName.content, test_data) self.assertEqual(placeName.places.first(), saved) self.assertEqual( Place.objects.filter(placeName=placeName).first(), saved)
def paste(request, uplace_id): vd = vd_login_for_browser(request) uplace = UserPlace.objects.get(vd_id__in=vd.realOwner_vd_ids, id=uplace_id) if request.method == 'POST': pb = PostBase() pb.uuid = uplace.uuid if 'note' in request.POST and request.POST['note']: note, is_created = PlaceNote.get_or_create_smart( request.POST['note']) pb.notes.append(note) if request.FILES: for file in request.FILES.itervalues(): rf = RawFile.objects.create(vd=vd, file=file) rf.start() img, is_created = Image.get_or_create_smart(rf.url) pb.images.append(img) if 'lp' in request.POST and request.POST['lp']: lp, is_created = LegacyPlace.get_or_create_smart( request.POST['lp']) pb.lps.append(lp) pb_MAMMA = pb.pb_MAMMA if pb_MAMMA: place, is_created = Place.get_or_create_smart(pb_MAMMA, vd) uplace.placed(place) if pb.ujson: pp = PostPiece.create_smart(uplace, pb) if uplace.is_empty: uplace.is_empty = False uplace.save() uplace._clearCache() return render(request, 'ui/paste.html', context=dict(uplace=uplace))
def listReviews(request): if request.method == "POST" : user = User() user.userId = int(request.POST["userId"]) place = Place() place.placeId = int(request.POST["placeId"]) typeId = int(request.POST["typeId"]) data = [] for r in Review.objects.filter(reviewPlace_id=place).exclude(reviewUser_id=user) : dict = {} dict['userId'] = r.reviewUser.userId dict['userAlias'] = r.reviewUser.userAlias dict['reviewPointPrice'] = r.reviewPointPrice dict['reviewPointService'] = r.reviewPointService dict['reviewPointLocation'] = r.reviewPointLocation dict['reviewPointCondition'] = r.reviewPointCondition dict['reviewPointComfort'] = r.reviewPointComfort dict['reviewText'] = r.reviewText average = float(r.reviewPointPrice+r.reviewPointService+r.reviewPointLocation+r.reviewPointCondition+r.reviewPointComfort) / 5 dict['averagePoint'] = average sp = SimilarityProcess() dict['similarityValue'] = sp.process(User.objects.get(userId=user.userId), r.reviewUser, typeId) dict['newSimilarityValue'] = float(dict['similarityValue']) * average data.append(dict) #''' normalizing similarity on same place minV = min(data, key=lambda x:x['similarityValue']) maxV = max(data, key=lambda x:x['similarityValue']) minValue = minV['similarityValue'] maxValue = maxV['similarityValue'] for dict in data: dict["similarityValue"] = float((dict["similarityValue"] - minValue)/(maxValue - minValue)) dict['newSimilarityValue'] = dict['similarityValue'] * dict['averagePoint'] dict['averagePoint'] = str(dict['averagePoint']) fuzzy = Fuzzy() dict['similarityFlag'] = str(fuzzy.process(dict['similarityValue'])) #''' data = sorted(data, key=lambda rev: rev['newSimilarityValue'], reverse=True) return HttpResponse(json.dumps(data)) else : return HttpResponse("what?")
def test_get_or_create_smart(self): vd = VD.objects.create() test_data = 'http://place.kakao.com/places/15738374' lp, is_created = LegacyPlace.get_or_create_smart(test_data) pb = PostBase() pb.lps.append(lp) place, is_created = Place.get_or_create_smart(pb.pb_MAMMA, vd) placePost = place.placePost self.assertDictEqual(pb.pb_MAMMA.json, placePost.json) self.assertEqual(unicode(place), '방아깐')
def test_string_representation(self): place = Place() place.save() self.assertEqual(unicode(place), 'No named place object') placeName = PlaceName(content='능이향기') placeName.save() place.placeName = placeName place.save() self.assertEqual(unicode(place), '능이향기')
def setUp(self): super(PostPieceTest, self).setUp() self.place = Place() self.place.save() self.uplace = UserPlace() self.uplace.save() self.vd = VD() self.vd.save() self.image, is_created = Image.get_or_create_smart( 'http://blogthumb2.naver.net/20160302_285/mardukas_1456922688406bYGAH_JPEG/DSC07301.jpg' ) self.url, is_created = Url.get_or_create_smart('http://www.naver.com/') self.lp, is_created = LegacyPlace.get_or_create_smart( '4ccffc63f6378cfaace1b1d6.4square') self.addr, is_created = Address.get_or_create_smart( '경기도 하남시 풍산로 270, 206동 402호 (선동, 미사강변도시2단지)') self.phone, is_created = PhoneNumber.get_or_create_smart( '010-5597-9245')
def update_matches(id, type): if type == 'place': from place.models import Place as Model elif type == 'event': from event.models import Event as Model a = models.Annotation.objects.get(pk=id) a_matches = getattr(a, type == 'place' and 'places' or 'events') #remove undefined matches that only have this annotation for p in a_matches.filter(defined=False).exclude(name=a.value): if p.annotations.exclude(id=id).count() == 0: p.delete() if a.get_layer().get('type') == type and a_matches.count() == 0: a_matches.add(Model.get_or_create(a.value)) for p in a_matches.all(): p.update_matches() if a.findvalue: names = {} for n in Model.objects.all().values('id', 'name', 'alternativeNames'): names[n['id']] = [ ox.decode_html(x) for x in [n['name']] + json.loads(n['alternativeNames']) ] value = a.findvalue.lower() current = [p.id for p in a_matches.all()] matches = [] name_matches = [] for i in names: for name in names[i]: if name.lower() in value: matches.append(i) name_matches.append(name.lower()) break new = [] for i in matches: p = Model.objects.get(pk=i) #only add places/events that did not get added as a super match #i.e. only add The Paris Region and not Paris if not filter(lambda n: n in name_matches, [n.lower() for n in p.get_super_matches()]): new.append(i) removed = filter(lambda p: p not in new, current) added = filter(lambda p: p not in current, new) update = removed + added if update: for e in Model.objects.filter(id__in=update): e.update_matches(models.Annotation.objects.filter(pk=a.id)) else: #annotation has no value, remove all exisint matches for e in a_matches.all(): e.update_matches(models.Annotation.objects.filter(pk=a.id))
def update_matches(id, type): if type == 'place': from place.models import Place as Model elif type == 'event': from event.models import Event as Model a = models.Annotation.objects.get(pk=id) a_matches = getattr(a, type == 'place' and 'places' or 'events') #remove undefined matches that only have this annotation for p in a_matches.filter(defined=False).exclude(name=a.value): if p.annotations.exclude(id=id).count() == 0: p.delete() if a.get_layer().get('type') == type and a_matches.count() == 0: a_matches.add(Model.get_or_create(a.value)) for p in a_matches.all(): p.update_matches() if a.findvalue: names = {} for n in Model.objects.all().values('id', 'name', 'alternativeNames'): names[n['id']] = [ox.decode_html(x) for x in [n['name']] + json.loads(n['alternativeNames'])] value = a.findvalue.lower() current = [p.id for p in a_matches.all()] matches = [] name_matches = [] for i in names: for name in names[i]: if name.lower() in value: matches.append(i) name_matches.append(name.lower()) break new = [] for i in matches: p = Model.objects.get(pk=i) #only add places/events that did not get added as a super match #i.e. only add The Paris Region and not Paris if not filter(lambda n: n in name_matches, [n.lower() for n in p.get_super_matches()]): new.append(i) removed = filter(lambda p: p not in new, current) added = filter(lambda p: p not in current, new) update = removed + added if update: for e in Model.objects.filter(id__in=update): e.update_matches(models.Annotation.objects.filter(pk=a.id)) else: #annotation has no value, remove all exisint matches for e in a_matches.all(): e.update_matches(models.Annotation.objects.filter(pk=a.id))
def create_place(place_object): if not 'name' in place_object: create_moderaion(place_object, None) return False if not place_object['name']: create_moderaion(place_object, None) return False kwargs = { 'is_published': True, 'manual_changed': False, 'identity': place_object['response_url'], } place = Place(**kwargs) for f in ['name', 'url', 'email']: if f in place_object: setattr(place, f, place_object[f]) place.save(site=Site.objects.get(id=place_object['site_id'])) for cat in place_object['category']: place.category.add(PlaceCategory.objects.get(id=cat['id'])) for tag in place_object['tagging']: place.tagging.add(Tag.objects.get(id=tag['id'])) payments = place_object.get('payments') if payments: payments_list = [] for p in payments: p_slug = pytils.translit.slugify(p) payment, is_created = PaymentSystem.objects.get_or_create( name=p_slug, display=p) payments_list.append(payment) place.payments.add(*payments_list) if not place_object['adr']: create_moderaion(place_object, place) return False for adr_object in place_object['adr']: adr = PlaceAddress() adr.address = adr_object['address'] if 'phone' in adr_object: adr.phone = adr_object['phone'] adr.place = place adr.save() if 'wt_list' in adr_object: for wt_dump in adr_object['wt_list']: wt = PlaceAddressWorkTime(**wt_dump) wt.address = adr wt.save() place.save() return True
def url_placed(request): url = None places = None vd_id = request.session[VD_SESSION_KEY] vd = VD.objects.get(id=vd_id) if not vd: raise ValueError('Admin Login Required') if request.method == 'POST': raw_url = request.POST['url'] url, is_created = Url.get_or_create_smart(raw_url) if not url: raise ValueError('Invalid URL') raw_places = request.POST['places'] for raw_place in raw_places.split('\n'): raw_place = raw_place.strip() is_remove = False if raw_place.startswith('-'): is_remove = True raw_place = raw_place[1:] if not raw_place: continue lp_content = LegacyPlace.normalize_content(raw_place) if lp_content: lp, is_created = LegacyPlace.get_or_create_smart(lp_content) pb = PostBase() pb.lps.append(lp) place, is_created = Place.get_or_create_smart(pb.pb_MAMMA, vd) if is_remove: url.remove_place(place) else: url.add_place(place) else: raise NotImplementedError places = [place for place in url.places.all()] return render(request, 'admin2/url_placed.html', dict(url=url, places=places))
class UserPlaceTest(APITestBase): def setUp(self): super(UserPlaceTest, self).setUp() self.place = Place() point = GEOSGeometry('POINT(127.1037430 37.3997320)', srid=4326) self.place.lonLat = point self.place.save() self.vd = VD() self.vd.save() def test_save_and_retreive(self): uplace = UserPlace(vd=self.vd) uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved, uplace) def test_id_property(self): uplace = UserPlace(vd=self.vd) self.assertEqual(uplace.id, None) timestamp = get_timestamp() uplace.save() self.assertNotEqual(uplace.id, None) self.assertAlmostEqual((int(uplace.id) >> 8 * 8) & BIT_ON_8_BYTE, timestamp, delta=1000) self.assertEqual((int(uplace.id) >> 2 * 8) & BIT_ON_6_BYTE, self.vd.id) saved = UserPlace.objects.first() self.assertEqual(saved, uplace) self.assertEqual(saved.id, uplace.id) # for timestamp property self.assertEqual(uplace.created, uplace.modified) self.assertEqual(saved.created, uplace.created) self.assertEqual(saved.modified, uplace.modified) self.assertAlmostEqual(uplace.created, timestamp, delta=1000) def test_id_property_with_timestamp(self): uplace = UserPlace(vd=self.vd) timestamp = get_timestamp() uplace.save(timestamp=timestamp) self.assertEqual((int(uplace.id) >> 8 * 8) & BIT_ON_8_BYTE, timestamp) self.assertEqual((int(uplace.id) >> 2 * 8) & BIT_ON_6_BYTE, self.vd.id) saved = UserPlace.objects.first() self.assertEqual(saved, uplace) self.assertEqual(saved.id, uplace.id) def test_id_property_with_no_vd(self): uplace = UserPlace() uplace.save() self.assertEqual((int(uplace.id) >> 2 * 8) & BIT_ON_6_BYTE, 0) def test_non_unique_vd_place(self): uplace = UserPlace(vd=self.vd, place=self.place) uplace.save() uplace2 = UserPlace(vd=self.vd, place=self.place) uplace2.save() self.assertNotEqual(uplace, uplace2) self.assertEqual(uplace.place, uplace2.place) def test_get_or_create(self): uplace, is_created = UserPlace.objects.get_or_create(vd=self.vd, place=self.place) self.assertEqual(is_created, True) uplace2, is_created = UserPlace.objects.get_or_create(vd=self.vd, place=self.place) self.assertEqual(is_created, False) self.assertEqual(uplace, uplace2) def test_created_modified(self): uplace = UserPlace(vd=self.vd, place=self.place) self.assertEqual(uplace.created, None) self.assertEqual(uplace.modified, None) uplace.save() t1 = uplace.modified self.assertNotEqual(t1, None) self.assertEqual(uplace.created, t1) self.assertAlmostEqual(t1, get_timestamp(), delta=1000) uplace.save() self.assertGreater(uplace.modified, t1) self.assertAlmostEqual(uplace.modified, t1, delta=1000) self.assertEqual(uplace.created, t1) t2 = get_timestamp() uplace.save(timestamp=t2) self.assertEqual(uplace.modified, t2) self.assertEqual(uplace.created, t1) def test_lonLat_column(self): uplace = UserPlace(vd=self.vd, place=self.place) uplace.save() point2 = GEOSGeometry('POINT(127.107316 37.400998)', srid=4326) qs1 = UserPlace.objects.filter(place__lonLat__distance_lte=(point2, D(m=100))) self.assertEqual(len(qs1), 0) qs2 = UserPlace.objects.filter(place__lonLat__distance_lte=(point2, D(m=1000))) self.assertEqual(len(qs2), 1) qs3 = UserPlace.objects.filter(lonLat__distance_lte=(point2, D(m=100))) self.assertEqual(len(qs3), 0) qs4 = UserPlace.objects.filter(vd_id=self.vd.id).filter( lonLat__distance_lte=(point2, D(m=1000))) self.assertEqual(len(qs4), 1) qs5 = UserPlace.objects.filter(vd_id=0).filter( lonLat__distance_lte=(point2, D(m=1000))) self.assertEqual(len(qs5), 0) def test_mask(self): uplace = UserPlace(vd=self.vd, place=self.place) uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved.is_drop, False) self.assertEqual(saved.mask, 0 | 0) uplace.is_drop = True uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved.is_drop, True) self.assertEqual(saved.mask, 0 | 1) uplace.is_drop = False uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved.is_drop, False) self.assertEqual(saved.mask, 0 | 0) uplace.is_hard2placed = True uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved.is_hard2placed, True) self.assertEqual(saved.mask, 0 | 2) uplace.is_hard2placed = False uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved.is_hard2placed, False) self.assertEqual(saved.mask, 0 | 0) uplace.is_hurry2placed = True uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved.is_hurry2placed, True) self.assertEqual(saved.mask, 0 | 4) uplace.is_hurry2placed = False uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved.is_hurry2placed, False) self.assertEqual(saved.mask, 0 | 0) uplace.is_parent = True uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved.is_parent, True) self.assertEqual(saved.mask, 0 | 8) uplace.is_parent = False uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved.is_parent, False) self.assertEqual(saved.mask, 0 | 0) uplace.is_empty = True uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved.is_empty, True) self.assertEqual(saved.mask, 0 | 16) uplace.is_empty = False uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved.is_empty, False) self.assertEqual(saved.mask, 0 | 0) uplace.is_bounded = True uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved.is_bounded, True) self.assertEqual(saved.mask, 0 | 32) uplace.is_bounded = False uplace.save() saved = UserPlace.objects.first() self.assertEqual(saved.is_bounded, False) self.assertEqual(saved.mask, 0 | 0) def test_get_from_post(self): vd_other = VD.objects.create() place_other = Place.objects.create() uplace1 = UserPlace.objects.create(vd=vd_other, place=self.place) uplace2 = UserPlace.objects.create(vd=self.vd, place=place_other) uplace3 = UserPlace.objects.create(vd=self.vd, place=self.place) pb = PostBase() pb.place_id = self.place.id ru = RealUser.objects.create(email='*****@*****.**') self.vd.realOwner = ru self.vd.save() vd_mine = VD.objects.create(realOwner=ru) uplace_check, is_created = UserPlace.get_or_create_smart(pb, vd_mine) self.assertNotEqual(uplace1, uplace_check) self.assertNotEqual(uplace2, uplace_check) self.assertEqual(uplace3, uplace_check) def test_origin(self): point = GEOSGeometry('POINT(127.1037430 37.3997320)', srid=4326) uplace = UserPlace.objects.create(vd=self.vd, lonLat=point) uplace.origin = point self.assertEqual(uplace.origin, point) self.assertEqual(UserPlace.objects.count(), 1) uplace2 = UserPlace.objects.first() self.assertEqual(uplace2.origin, None) def test_distance_from_origin(self): point = GEOSGeometry('POINT(127.1037430 37.3997320)', srid=4326) uplace = UserPlace.objects.create(vd=self.vd, lonLat=point) self.assertEqual(uplace.distance_from_origin, None) uplace.origin = point self.assertEqual(uplace.distance_from_origin, '0m') point2 = GEOSGeometry('POINT(127.107316 37.400998)', srid=4326) uplace.origin = point2 self.assertEqual(uplace.distance_from_origin, '350m') point3 = GEOSGeometry('POINT(127.0 37.0)', srid=4326) uplace.origin = point3 self.assertEqual(uplace.distance_from_origin, '45.3km') def test_aid(self): uplace = UserPlace.objects.create() aid = uplace.aid id = UserPlace.aid2id(aid) self.assertEqual(id, uplace.id) def _skip_test_shorten_url(self): place = Place.objects.create() uplace = UserPlace.objects.create(place=place) self.assertEqual(uplace.shorten_url, None) uplace.make_shorten_url() self.assertNotEqual(uplace.shorten_url, None) self.assertEqual(uplace.shorten_url.startswith('http://goo.gl/'), True)
def import_places(): OLD_LOGOTYPE_PATH = os.path.join(PATH_FOR_OLD_SITE, 'images/afisha/zaveds') OLD_PROMOPICTURE_PATH = os.path.join(PATH_FOR_OLD_SITE, 'images/places') content_type = ContentType.objects.get_for_model(Place) fields = [ 'id', #pk 'title', #title 'description', #description 'url', #url 'urlhits', #urlhits 'email', #email 'logotype', #logotype 'logotype_alt', #logotype_alt 'picture', #photo 'picture_alt', #photo_alt 'published', #is_published 'promo_published', #promo_is_up 'promo_from_date', #date_promo_up 'promo_till_date', #date_promo_down 'hits', #hits ] sql = "SELECT %s FROM jos_places_company" % (', '.join(fields)) cursor = db.cursor() cursor.execute(sql) all_rows = cursor.fetchall() count = 0 bar = progressbar.ProgressBar(maxval=len(all_rows), widgets=[ 'import places: ', progressbar.SimpleProgress(), ]).start() for row in all_rows: place = Place(pk=int(row[0]), name=str(row[1]), description=str(row[2]), url=str(row[3]), urlhits=int(row[4]), email=str(row[5]), logotype_alt=str(row[7]), photo_alt=str(row[9]), is_published=bool(row[10]), promo_is_up=bool(row[11]), hits=int(row[14])) try: place.date_promo_up = datetime.strptime(str(row[12]), \ '%Y-%m-%d') except ValueError: pass try: place.date_promo_down = datetime.strptime(str(row[13]), \ '%Y-%m-%d') except ValueError: pass path = os.path.join(OLD_LOGOTYPE_PATH, str(row[6])) if os.path.isfile(path): place.logotype = path place.logotype.save(place_gen_file_name(place, path), \ ContentFile(open(path, 'rb').read())) path = os.path.join(OLD_PROMOPICTURE_PATH, str(place.pk), 'promo_picture/big', str(row[8])) if os.path.isfile(path): place.photo = path place.photo.save(place_gen_file_name(place, path), \ ContentFile(open(path, 'rb').read())) sql = "SELECT COUNT(*) FROM jos_places_company_extensions WHERE company_id=%s and extension_id=1" \ % place.pk cursor = db.cursor() cursor.execute(sql) result = cursor.fetchall() if bool(result[0][0]): place.is_new = True sql = "SELECT COUNT(*) FROM jos_places_company_extensions WHERE company_id=%s and extension_id=2" \ % place.pk cursor = db.cursor() cursor.execute(sql) result = cursor.fetchall() if bool(result[0][0]): place.expert_choice = True place.save() sql = "SELECT tag_id FROM jos_places_category WHERE company_id=%s" \ % place.pk cursor = db.cursor() cursor.execute(sql) cat_list = cursor.fetchall() for row in cat_list: cat_pk = int(row[0]) cat = PlaceCategory.objects.get(main_tag__pk=cat_pk) place.category.add(cat) sql = "SELECT teg_id FROM jos_tegs_zaveds WHERE zaved_id=%s" \ % place.pk cursor = db.cursor() cursor.execute(sql) tag_list = cursor.fetchall() for row in tag_list: tag_pk = int(row[0]) try: tag = Tag.objects.get(pk=tag_pk) except: pass else: place.tagging.add(tag) import_place_comment(content_type, place) place.save() import_address(place) count += 1 bar.update(count) bar.finish()
# y1= y.replace('(', '') # y1 = y1.replace(')', '') # y1 = y1.split(',') # if len(y1) > 1: get_place = Place.objects.filter(id=a).first() if get_place: get_place.description = e get_place.save() else: place = Place( source_id=a, county=b, title=c, description=e, action_type=action_type, place_type=g, rule_text=y, owner_text=v, administrator_text=w, contact_text=n, nursery_text=ad, garden_text=ae, link=h, cover_url=i, lat=j, lon=k, ) place.save() counter += 1
time.sleep(0.1) _g = reverse_geocode('%s,%s'%tuple(json['geopoint'])) city = None for key,value in cities.items(): if key in _g['address']: city = value break address = _g['address'].split(city.name) image = None if 'image' in json: image,new = Image.objects.get_or_create(src=pull_image(json['image'])) place = Place( name = json['title'], address = _g['address'].split(', '+city.name)[0], geopoint = 'POINT(%s %s)'%tuple(json['geopoint'][::-1]), image = image, city=city, zipcode = _g['address'].split('TX ')[-1].split(',')[0], description = json['desc'], source_url = json['link'] ) place.save() place.source.add(Source.objects.get_or_create(name="CultureMap")[0]) place.save() created += 1 print "Place Created: %s"%place print "%s created and %s found"%(created,found) #place = Place.objects.get_or_create
def test_save_and_retreive(self): place = Place() place.save() saved = Place.objects.first() self.assertEqual(saved, place)
def test_post(self): place = Place() place.save() vd1 = VD() vd1.save() uplace1 = UserPlace(vd=vd1, place=place) uplace1.save() point1 = GEOSGeometry('POINT(127 37)', srid=4326) name1, is_created = PlaceName.get_or_create_smart('능라') addr1, is_created = Address.get_or_create_smart( '경기도 성남시 분당구 운중동 883-3') note11, is_created = PlaceNote.get_or_create_smart('분당 냉면 최고') note12, is_created = PlaceNote.get_or_create_smart('만두도 괜찮음') imgNote1, is_created = ImageNote.get_or_create_smart('냉면 사진') img1_content = 'http://blogthumb2.naver.net/20160302_285/mardukas_1456922688406bYGAH_JPEG/DSC07301.jpg' img1, is_created = Image.get_or_create_smart(img1_content) phone1, is_created = PhoneNumber.get_or_create_smart('010-5686-1613') vd2 = VD() vd2.save() uplace2 = UserPlace(vd=vd2, place=place) uplace2.save() point2 = GEOSGeometry('POINT(127.1037430 37.3997320)', srid=4326) name2, is_created = PlaceName.get_or_create_smart('능라도') addr2, is_created = Address.get_or_create_smart( '경기도 성남시 분당구 산운로32번길 12') note21, is_created = PlaceNote.get_or_create_smart('여기 가게 바로 옆으로 이전') note22, is_created = PlaceNote.get_or_create_smart('평양냉면 맛집') img21_content = 'http://blogpfthumb.phinf.naver.net/20100110_16/mardukas_1263055491560_VI01Ic_JPG/DSCN1968.JPG' img22_content = 'http://mblogthumb3.phinf.naver.net/20160807_298/mardukas_14705287064440EYVC_JPEG/DSC03530.JPG?type=w800' img21, is_created = Image.get_or_create_smart(img21_content) img22, is_created = Image.get_or_create_smart(img22_content) imgNote2, is_created = ImageNote.get_or_create_smart('만두 사진') url2, is_created = Url.get_or_create_smart('http://www.naver.com/') lp, is_created = LegacyPlace.get_or_create_smart( '4ccffc63f6378cfaace1b1d6.4square') phone2, is_created = PhoneNumber.get_or_create_smart('010-5597-9245') json_userPost = ''' { "lonLat": {"lon": %f, "lat": %f}, "name": {"uuid": "%s", "content": "%s"}, "addr2": {"uuid": "%s", "content": "%s"}, "notes": [{"uuid": "%s", "content": "%s"}, {"uuid": "%s", "content": "%s"}], "images": [{"uuid": "%s", "content": "%s", "note": {"uuid": "%s", "content": "%s"}}], "urls": [], "lps": [], "phone": {"uuid": "%s", "content": "%s"} } ''' % ( point1.x, point1.y, name1.uuid, name1.content, addr1.uuid, addr1.content, note12.uuid, note12.content, note11.uuid, note11.content, img1.uuid, img1.content, imgNote1.uuid, imgNote1.content, phone1.uuid, phone1.content, ) json_placePost = ''' { "lonLat": {"lon": %f, "lat": %f}, "name": {"uuid": "%s", "content": "%s"}, "addr1": {"uuid": "%s", "content": "%s"}, "addr2": {"uuid": "%s", "content": "%s"}, "notes": [ {"uuid": "%s", "content": "%s"}, {"uuid": "%s", "content": "%s"}, {"uuid": "%s", "content": "%s"}, {"uuid": "%s", "content": "%s"} ], "images": [ {"uuid": "%s", "content": "%s", "note": null}, {"uuid": "%s", "content": "%s", "note": {"uuid": "%s", "content": "%s"}}, {"uuid": "%s", "content": "%s", "note": {"uuid": "%s", "content": "%s"}} ], "urls": [{"uuid": "%s", "content": "%s"}], "lps": [{"uuid": "%s", "content": "%s"}], "phone": {"uuid": "%s", "content": "%s"} } ''' % ( point2.x, point2.y, name2.uuid, name2.content, addr2.uuid, addr2.content, addr1.uuid, addr1.content, note22.uuid, note22.content, note21.uuid, note21.content, note12.uuid, note12.content, note11.uuid, note11.content, img22.uuid, img22.content, img21.uuid, img21.content, imgNote2.uuid, imgNote2.content, img1.uuid, img1.content, imgNote1.uuid, imgNote1.content, url2.uuid, url2.content, lp.uuid, lp.content, phone2.uuid, phone2.content, ) pb1 = PostBase(json_userPost) pb2 = PostBase(json_placePost) self.assertEqual(PostPiece.objects.count(), 0) pp1 = PostPiece.create_smart(uplace1, pb1) self.assertEqual(PostPiece.objects.count(), 1) pp2 = PostPiece.create_smart(uplace2, pb2) pp3 = PostPiece.create_smart_4place(place, vd1, pb2, by_MAMMA=True) self.assertEqual(PostPiece.objects.count(), 3) want_userPost = json_loads(json_userPost) want_placePost = json_loads(json_placePost) self.assertNotIn('timestamp', uplace1.userPost.json['lonLat']) self.assertNotIn('timestamp', uplace1.userPost.json['name']) self.assertIn('timestamp', uplace1.userPost.json['notes'][0]) self.assertNotIn('timestamp', uplace1.userPost.json['images'][0]) self.assertIn('timestamp', uplace1.userPost.json['images'][0]['note']) self.assertNotIn('timestamp', uplace2.userPost.json['urls'][0]) self.assertNotIn('timestamp', uplace2.userPost.json['lps'][0]) timestamp = uplace1.userPost.json['notes'][0]['timestamp'] self.assertAlmostEqual(get_timestamp(), timestamp, delta=1000) self.assertIn('summary', uplace1.userPost.json['images'][0]) self.assertIn('phone', uplace1.userPost.json) self.assertNotEqual(uplace1.userPost.json['images'][0]['content'], None) self.assertIsSubsetOf(want_userPost, uplace1.userPost) self.assertIsNotSubsetOf(uplace1.userPost, want_userPost) self.assertIsSubsetOf(want_placePost, uplace1.place.placePost) self.assertIsNotSubsetOf(uplace1.place.placePost, want_placePost) uplace1._clearCache() p1 = uplace1.place.placePost uplace2._clearCache() p2 = uplace2.place.placePost place._clearCache() p3 = place.placePost self.assertDictEqual(p1.json, p3.json) self.assertDictEqual(p2.json, p3.json) pb12 = PostBase(json_userPost) pb12.update(pb1) self.assertNotEqual(pb12.json, pb1.json) pb12.normalize() self.assertEqual(pb12.json, pb1.json) pb13 = PostBase(json_userPost) pb13.update(pb1) pb13.update(pb1, add=False) pb_null = PostBase() self.assertEqual(pb13.json, pb_null.json) totalPost = place._totalPost self.assertIsSubsetOf(uplace1.place.placePost, totalPost) #self.assertIsSubsetOf(uplace1.userPost, totalPost) # Note 에서 timestamp 를 제거해야... #self.assertIsSubsetOf(uplace2.userPost, totalPost) # 상동 #self.assertIsNotSubsetOf(totalPost, uplace1.place.placePost) # userPost 를 하나 더 생성해야... # child/parent test uplace3 = UserPlace.objects.create(parent=uplace1) self.assertEqual(uplace3.parent, uplace1) self.assertNotEqual(uplace3.userPost, uplace1.userPost) self.printJson(uplace3.userPost.json) self.printJson(uplace1.userPost.json) self.assertEqual(uplace3.userPost.json, uplace1.userPost.json) uplace1._clearCache() uplace3._clearCache() pb3 = PostBase('{"notes": [{"content": "child"}]}') pp3 = PostPiece.create_smart(uplace3, pb3) self.assertNotEqual(uplace3.userPost, uplace1.userPost) self.assertNotEqual(uplace3.userPost.json, uplace1.userPost.json) place4 = Place.objects.create() uplace4 = UserPlace.objects.create(parent=uplace1, vd=vd1, place=place4) self.assertEqual(uplace4.parent, uplace1) self.assertNotEqual(uplace4.userPost, uplace1.userPost) self.assertEqual(uplace4.userPost.json, uplace1.userPost.json) uplace1._clearCache() uplace4._clearCache() pb3 = PostBase('{"notes": [{"content": "child"}]}') pp3 = PostPiece.create_smart(uplace4, pb3) self.assertNotEqual(uplace4.userPost, uplace1.userPost) self.assertNotEqual(uplace4.userPost.json, uplace1.userPost.json)
class PostPieceTest(APITestBase): def setUp(self): super(PostPieceTest, self).setUp() self.place = Place() self.place.save() self.uplace = UserPlace() self.uplace.save() self.vd = VD() self.vd.save() self.image, is_created = Image.get_or_create_smart( 'http://blogthumb2.naver.net/20160302_285/mardukas_1456922688406bYGAH_JPEG/DSC07301.jpg' ) self.url, is_created = Url.get_or_create_smart('http://www.naver.com/') self.lp, is_created = LegacyPlace.get_or_create_smart( '4ccffc63f6378cfaace1b1d6.4square') self.addr, is_created = Address.get_or_create_smart( '경기도 하남시 풍산로 270, 206동 402호 (선동, 미사강변도시2단지)') self.phone, is_created = PhoneNumber.get_or_create_smart( '010-5597-9245') def test_save_and_retreive(self): pp = PostPiece() pp.save() saved = PostPiece.objects.first() self.assertEqual(saved, pp) def test_id_property(self): pp = PostPiece(vd=self.vd) self.assertEqual(pp.id, None) timestamp = get_timestamp() pp.save() self.assertNotEqual(pp.id, None) self.assertAlmostEqual((int(pp.id) >> 8 * 8) & BIT_ON_8_BYTE, timestamp, delta=1000) self.assertEqual((int(pp.id) >> 2 * 8) & BIT_ON_6_BYTE, self.vd.id) saved = PostPiece.objects.first() self.assertEqual(saved, pp) self.assertEqual(saved.id, pp.id) # for timestamp property self.assertEqual(saved.timestamp, pp.timestamp) self.assertAlmostEqual(pp.timestamp, timestamp, delta=1000) def test_id_property_with_timestamp(self): pp = PostPiece(vd=self.vd) timestamp = get_timestamp() pp.save(timestamp=timestamp) self.assertEqual((int(pp.id) >> 8 * 8) & BIT_ON_8_BYTE, timestamp) self.assertEqual((int(pp.id) >> 2 * 8) & BIT_ON_6_BYTE, self.vd.id) saved = PostPiece.objects.first() self.assertEqual(saved, pp) self.assertEqual(saved.id, pp.id) def test_id_property_with_no_vd(self): pp = PostPiece() pp.save() self.assertEqual((int(pp.id) >> 2 * 8) & BIT_ON_6_BYTE, 0) def test_uplace_property(self): pp = PostPiece() pp.uplace = self.uplace pp.save() saved = self.uplace.pps.first() self.assertEqual(saved, pp) self.assertEqual(saved.uplace, pp.uplace) self.assertEqual(saved.place, None) def test_place_property(self): pp = PostPiece() pp.place = self.place pp.save() saved = self.place.pps.first() self.assertEqual(saved, pp) self.assertEqual(saved.place, pp.place) self.uplace.place = self.place self.uplace.save() pp2 = PostPiece() pp2.uplace = self.uplace self.assertEqual(pp2.place, None) pp2.save() self.assertEqual(pp2.place, self.place) def test_vd_property(self): pp = PostPiece() pp.vd = self.vd pp.save() saved = self.vd.pps.first() self.assertEqual(saved, pp) self.assertEqual(saved.vd, pp.vd) def test_data_property(self): # TODO : json 에 대한 query 테스트 추가 uplace = UserPlace.objects.create() pp = PostPiece(uplace=uplace) json_add = json_loads(''' { "lonLat": {"lon": 127.1037430, "lat": 37.3997320}, "images": [{"content": "http://blogthumb2.naver.net/20160302_285/mardukas_1456922688406bYGAH_JPEG/DSC07301.jpg"}], "addr1": {"content": "경기도 성남시 분당구 판교로 256번길 25"}, "addr2": {"content": "경기도 성남시 분당구 삼평동 631"}, "addr3": {"content": "경기도 성남시 분당구 삼평동"}, "urls": [{"content": "http://place.kakao.com/places/15738374"}] } ''') pp.data = json_add pp.vd = self.vd pp.save() saved = PostPiece.objects.first() self.assertEqual(json_add, pp.data) self.assertEqual(json_add, saved.data) self.assertEqual(pp.pb.image.vd, pp.vd) self.assertEqual(pp.pb.url.vd, pp.vd) pp2 = PostPiece() pb = PostBase(json_add) pp2.pb = pb pp2.save() saved = PostPiece.objects.order_by('-id').first() self.assertEqual(pp2, saved) self.assertDictEqual(pp2.pb.json, saved.pb.json) self.assertDictEqual(pp2.pb.cjson, saved.pb.cjson) self.assertDictEqual(pb.json, saved.pb.json) self.assertDictEqual(pb.cjson, saved.pb.cjson) self.assertEqual(pp2.pb.image.vd, pp2.vd) self.assertEqual(pp2.pb.url.vd, pp2.vd) def test_mask(self): pp = PostPiece() pp.save() saved = PostPiece.objects.first() self.assertEqual(saved.is_remove, False) self.assertEqual(saved.is_add, True) self.assertEqual(saved.by_MAMMA, False) self.assertEqual(saved.is_drop, False) self.assertEqual(saved.mask, 0 | 0) pp.is_remove = True pp.by_MAMMA = False pp.is_drop = True pp.save() saved = PostPiece.objects.first() self.assertEqual(saved.is_remove, True) self.assertEqual(saved.is_add, False) self.assertEqual(saved.by_MAMMA, False) self.assertEqual(saved.is_drop, True) self.assertEqual(saved.mask, 4 | 0 | 1) pp.is_remove = False pp.by_MAMMA = True pp.is_drop = False pp.save() saved = PostPiece.objects.first() self.assertEqual(saved.is_remove, False) self.assertEqual(saved.is_add, True) self.assertEqual(saved.by_MAMMA, True) self.assertEqual(saved.is_drop, False) self.assertEqual(saved.mask, 0 | 2 | 0) pp.by_MAMMA = False pp.is_drop = True pp.save() saved = PostPiece.objects.first() self.assertEqual(saved.is_remove, False) self.assertEqual(saved.is_add, True) self.assertEqual(saved.by_MAMMA, False) self.assertEqual(saved.is_drop, True) self.assertEqual(saved.mask, 4 | 0 | 0) pp.mask = 0 pp.is_bounded = True pp.save() saved = PostPiece.objects.first() self.assertEqual(saved.is_bounded, True) self.assertEqual(saved.mask, 0 | 8) pp.is_bounded = False pp.save() saved = PostPiece.objects.first() self.assertEqual(saved.is_bounded, False) self.assertEqual(saved.mask, 0 | 0)
def enregistrementPlace(request,caracs,skills,items,tags,place): #Todo #Faire les verifs avant si existe pas Lieu et tout Place = Place.objects.create() Lieu = Lieu.objects.create() Lieu.save() Place.save() Place.Createur = User.objects.get(id=request.user.id) Place.Nom = place['Nom'] Place.save() for categorie in place['Categorie'] : try : result = CategoriePlace.objects.get(Nom=categorie) except : result = CategoriePlace.objects.create(Nom=categorie) result.save() Place.Categorie.add(result) Place.save() try : result = GPS.objects.get(Coord=place['GPS']) except : result = GPS.objects.create(Coord=place['GPS']) result.save() Lieu.GPS = result Lieu.save() try : result = Geohash.objects.get(Hash=place['Geohash']) except : result = Geohash.objects.create(Hash=place['Geohash']) result.save() Lieu.Geohash = result Lieu.save() i = 0 for adresse in place['Adresse'] : numero = place['NumAdresse'][i] try : result = Adresse.objects.get(Rue=adresse,Numero=numero) except : result = Adresse.objects.create(Rue=adresse,Numero=numero) result.save() i += 1 Lieu.Adresse.add(result) Lieu.save() try : result = CP.objects.get(Nom=place['CP']) except : result = CP.objects.create(Nom=place['CP']) result.save() Lieu.CP = result Lieu.save() try : result = Ville.objects.get(Nom=place['Ville'] ) except : result = Ville.objects.create(Nom=place['Ville'] ) result.save() Lieu.Ville = result Lieu.save() try : result = Region.objects.get(Nom=place['Region']) except : result = Region.objects.create(Nom=place['Region']) result.save() Lieu.Region = result Lieu.save() try : result = Pays.objects.get(Nom=place['Pays']) except : result = Pays.objects.create(Nom=place['Pays']) result.save() Lieu.Pays = result # a optimiser try : typetransport = TypeTransport.objects.get(Nom=place['TypeTransport1']) except : typetransport = TypeTransport.objects.create(Nom=place['TypeTransport1']) typetransport.save() try : ligne = Ligne.objects.get(TypeTransport=typetransport,Nom=place['LigneTransport1']) except : ligne = Ligne.objects.create(TypeTransport=typetransport,Nom=place['LigneTransport1']) ligne.save() try : station = Station.objects.get(Ligne__in=ligne,Nom=place['Transport1']) except : station = Station.objects.create(Nom=place['Transport1']) station.Ligne.add(ligne) station.save() Lieu.Station.add(station) try : typetransport = TypeTransport.objects.get(Nom=place['TypeTransport2']) except : typetransport = TypeTransport.objects.create(Nom=place['TypeTransport2']) typetransport.save() try : ligne = Ligne.objects.get(TypeTransport=typetransport,Nom=place['LigneTransport2']) except : ligne = Ligne.objects.create(TypeTransport=typetransport,Nom=place['LigneTransport2']) ligne.save() try : station = Station.objects.get(Ligne__in=ligne,Nom=place['Transport2']) except : station = Station.objects.create(Nom=place['Transport2']) station.Ligne.add(ligne) station.save() Lieu.Station.add(station) try : typetransport = TypeTransport.objects.get(Nom=place['TypeTransport3']) except : typetransport = TypeTransport.objects.create(Nom=place['TypeTransport3']) typetransport.save() try : ligne = Ligne.objects.get(TypeTransport=typetransport,Nom=place['LigneTransport3']) except : ligne = Ligne.objects.create(TypeTransport=typetransport,Nom=place['LigneTransport3']) ligne.save() try : station = Station.objects.get(Ligne__in=ligne,Nom=place['Transport3']) except : station = Station.objects.create(Nom=place['Transport3']) station.Ligne.add(ligne) station.save() Lieu.Station.add(station) try : typetransport = TypeTransport.objects.get(Nom=place['TypeTransport4']) except : typetransport = TypeTransport.objects.create(Nom=place['TypeTransport4']) typetransport.save() try : ligne = Ligne.objects.get(TypeTransport=typetransport,Nom=place['LigneTransport4']) except : ligne = Ligne.objects.create(TypeTransport=typetransport,Nom=place['LigneTransport4']) ligne.save() try : station = Station.objects.get(Ligne__in=ligne,Nom=place['Transport4']) except : station = Station.objects.create(Nom=place['Transport4']) station.Ligne.add(ligne) station.save() Lieu.Station.add(station) try : typetransport = TypeTransport.objects.get(Nom=place['TypeTransport5']) except : typetransport = TypeTransport.objects.create(Nom=place['TypeTransport5']) typetransport.save() try : ligne = Ligne.objects.get(TypeTransport=typetransport,Nom=place['LigneTransport5']) except : ligne = Ligne.objects.create(TypeTransport=typetransport,Nom=place['LigneTransport5']) ligne.save() try : station = Station.objects.get(Ligne__in=ligne,Nom=place['Transport5']) except : station = Station.objects.create(Nom=place['Transport5']) station.Ligne.add(ligne) station.save() Lieu.Station.add(station) try : typetransport = TypeTransport.objects.get(Nom=place['TypeTransport6']) except : typetransport = TypeTransport.objects.create(Nom=place['TypeTransport6']) typetransport.save() try : ligne = Ligne.objects.get(TypeTransport=typetransport,Nom=place['LigneTransport6']) except : ligne = Ligne.objects.create(TypeTransport=typetransport,Nom=place['LigneTransport6']) ligne.save() try : station = Station.objects.get(Ligne__in=ligne,Nom=place['Transport6']) except : station = Station.objects.create(Nom=place['Transport6']) station.Ligne.add(ligne) station.save() Lieu.Station.add(station) Lieu.save() Place.Lieu = Lieu Place.Telephone = place['Telephone'] Place.Email = place['Email'] Place.Commentaire = place['Commentaire'] Place.save() #En cours #TODO # A refaire en propre. plage = [] try : result = Plage.objects.get(DebutH=place['LundiM1'],DebutM= place['LundiM11'],FinH=place['LundiM2'], FinM=place['LundiM22']) except : result = Plage.objects.create(DebutH=place['LundiM1'],DebutM= place['LundiM11'],FinH=place['LundiM2'], FinM=place['LundiM22']) result.save() plage.append(result) try : result = Plage.objects.get(DebutH=place['LundiAM1'],DebutM= place['LundiAM11'],FinH=place['LundiAM2'], FinM=place['LundiAM22']) except : result = Plage.objects.create(DebutH=place['LundiAM1'],DebutM= place['LundiAM11'],FinH=place['LundiAM2'], FinM=place['LundiAM22']) result.save() plage.append(result) try : result = Plage.objects.get(DebutH=place['MardiM1'],DebutM= place['MardiM11'],FinH=place['MardiM2'], FinM=place['MardiM22']) except : result = Plage.objects.create(DebutH=place['MardiM1'],DebutM= place['MardiM11'],FinH=place['MardiM2'], FinM=place['MardiM22']) result.save() plage.append(result) try : result = Plage.objects.get(DebutH=place['MardiAM1'],DebutM= place['MardiAM11'],FinH=place['MardiAM2'], FinM=place['MardiAM22']) except : result = Plage.objects.create(DebutH=place['MardiAM1'],DebutM= place['MardiAM11'],FinH=place['MardiAM2'], FinM=place['MardiAM22']) result.save() plage.append(result) try : result = Plage.objects.get(DebutH=place['MercrediM1'],DebutM= place['MercrediM11'],FinH=place['MercrediM2'], FinM=place['MercrediM22']) except : result = Plage.objects.create(DebutH=place['MercrediM1'],DebutM= place['MercrediM11'],FinH=place['MercrediM2'], FinM=place['MercrediM22']) result.save() plage.append(result) try : result = Plage.objects.get(DebutH=place['MercrediAM1'],DebutM= place['MercrediAM11'],FinH=place['MercrediAM2'], FinM=place['MercrediAM22']) except : result = Plage.objects.create(DebutH=place['MercrediAM1'],DebutM= place['MercrediAM11'],FinH=place['MercrediAM2'], FinM=place['MercrediAM22']) result.save() plage.append(result) try : result = Plage.objects.get(DebutH=place['JeudiM1'],DebutM= place['JeudiM11'],FinH=place['JeudiM2'], FinM=place['JeudiM22']) except : result = Plage.objects.create(DebutH=place['JeudiM1'],DebutM= place['JeudiM11'],FinH=place['JeudiM2'], FinM=place['JeudiM22']) result.save() plage.append(result) try : result = Plage.objects.get(DebutH=place['JeudiAM1'],DebutM= place['JeudiAM11'],FinH=place['JeudiAM2'], FinM=place['JeudiAM22']) except : result = Plage.objects.create(DebutH=place['JeudiAM1'],DebutM= place['JeudiAM11'],FinH=place['JeudiAM2'], FinM=place['JeudiAM22']) result.save() plage.append(result) try : result = Plage.objects.get(DebutH=place['VendrediM1'],DebutM= place['VendrediM11'],FinH=place['VendrediM2'], FinM=place['VendrediM22']) except : result = Plage.objects.create(DebutH=place['VendrediM1'],DebutM= place['VendrediM11'],FinH=place['VendrediM2'], FinM=place['VendrediM22']) result.save() plage.append(result) try : result = Plage.objects.get(DebutH=place['VendrediAM1'],DebutM= place['VendrediAM11'],FinH=place['VendrediAM2'], FinM=place['VendrediAM22']) except : result = Plage.objects.create(DebutH=place['VendrediAM1'],DebutM= place['VendrediAM11'],FinH=place['VendrediAM2'], FinM=place['VendrediAM22']) result.save() plage.append(result) try : result = Plage.objects.get(DebutH=place['SamediM1'],DebutM= place['SamediM11'],FinH=place['SamediM2'], FinM=place['SamediM22']) except : result = Plage.objects.create(DebutH=place['SamediM1'],DebutM= place['SamediM11'],FinH=place['SamediM2'], FinM=place['SamediM22']) result.save() plage.append(result) try : result = Plage.objects.get(DebutH=place['SamediAM1'],DebutM= place['SamediAM11'],FinH=place['SamediAM2'], FinM=place['SamediAM22']) except : result = Plage.objects.create(DebutH=place['SamediAM1'],DebutM= place['SamediAM11'],FinH=place['SamediAM2'], FinM=place['SamediAM22']) result.save() plage.append(result) try : result = Plage.objects.get(DebutH=place['DimancheM1'],DebutM= place['DimancheM11'],FinH=place['DimancheM2'], FinM=place['DimancheM22']) except : result = Plage.objects.create(DebutH=place['DimancheM1'],DebutM= place['DimancheM11'],FinH=place['DimancheM2'], FinM=place['DimancheM22']) result.save() plage.append(result) try : result = Plage.objects.get(DebutH=place['DimancheAM1'],DebutM= place['DimancheAM11'],FinH=place['DimancheAM2'], FinM=place['DimancheAM22']) except : result = Plage.objects.create(DebutH=place['DimancheAM1'],DebutM= place['DimancheAM11'],FinH=place['DimancheAM2'], FinM=place['DimancheAM22']) result.save() plage.append(result) Jour = [ 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche'] i = 0 for j in jour : #TODO #A optimiser try : jour = Jour.objects.get(Jour=i+1) except : jour = Jour.objects.create(Jour=i+1) try : datejourhaoraire = DateJourHoraire.Object.get(Plage__in=[plage[i+1],plage[i]],Jour=jour) except : datejourhaoraire = DateJourHoraire.Object.create(Jour=jour) datejourhaoraire.Plage.add(plage[i+1]) datejourhaoraire.Plage.add(plage[i]) datejourhaoraire.save() Place.Horaire.add(datejourhaoraire) Place.save() Place.Url.add(place['URL1']) Place.Url.add(place['URL2']) Place.Url.add(place['URL3']) Place.Url.add(place['URL4']) Place.Url.add(place['URL5']) Place.save() Place.save() #TODO #Factoriser et expliquer les tags tags = tags.split('#') # TODO # A factoriser for tag in tags : tag = tag.strip() try : result = Tag.objects.get(Name=tag) except : result = Tag.objects.create(Name=tag) result.save() Place.Tags.add(result) Place.save() for carac in caracs.keys(): caracdb = Carac.objects.get(Nom=carac) try : result = CaracUser.objects.get(carac=caracdb,Level=int(caracs[carac][0])) except : result = CaracUser.objects.create(Level=0) result.Carac.add(caracdb) result.Level = int(caracs[carac][0]) result.save() Place.Caracs.add(result) for skill in skills.keys(): skilldb = Skill.objects.get(Nom=skill) print "nomSki" print skilldb.Nom private = False try : result = SkillUser.objects.get(Skills=skilldb,Level=int(skills[skill][0])) except : result = SkillUser.objects.create(Level=0) result.Skill.add(skilldb) result.Private = private result.Level = int(skills[skill][0]) result.save() Place.Skills.add(result) for item in items.keys(): itemdb = Item.objects.get(Nom=item) try : result = ItemUser.objects.get(Item=itemdb) except : result = ItemUser.objects.create() result.Item.add(itemdb) result.Private = private result.save() Place.Items.add(result) Place.save() sendnotificationPlace(Place)