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 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 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))