def get_all_tag(): resp = Resp() tag_columns = Tag.get_columns() tag_columns.remove("instances") result = Tag.get_all(*tag_columns) resp.data = result return resp
def setUp(self): # Create a few Authors. self.au1 = Author(name="Author 1") self.au1.save() self.au2 = Author(name="Author 2") self.au2.save() # Create a couple of Articles. self.a1 = Article(headline="Article 1", pub_date=datetime(2005, 7, 26), author=self.au1) self.a1.save() self.a2 = Article(headline="Article 2", pub_date=datetime(2005, 7, 27), author=self.au1) self.a2.save() self.a3 = Article(headline="Article 3", pub_date=datetime(2005, 7, 27), author=self.au1) self.a3.save() self.a4 = Article(headline="Article 4", pub_date=datetime(2005, 7, 28), author=self.au1) self.a4.save() self.a5 = Article(headline="Article 5", pub_date=datetime(2005, 8, 1, 9, 0), author=self.au2) self.a5.save() self.a6 = Article(headline="Article 6", pub_date=datetime(2005, 8, 1, 8, 0), author=self.au2) self.a6.save() self.a7 = Article(headline="Article 7", pub_date=datetime(2005, 7, 27), author=self.au2) self.a7.save() # Create a few Tags. self.t1 = Tag(name="Tag 1") self.t1.save() self.t1.articles.add(self.a1, self.a2, self.a3) self.t2 = Tag(name="Tag 2") self.t2.save() self.t2.articles.add(self.a3, self.a4, self.a5) self.t3 = Tag(name="Tag 3") self.t3.save() self.t3.articles.add(self.a5, self.a6, self.a7)
def setUp(self): # Create a few Authors. self.au1 = Author(name='Author 1') self.au1.save() self.au2 = Author(name='Author 2') self.au2.save() # Create a couple of Articles. self.a1 = Article(headline='Article 1', pub_date=datetime(2005, 7, 26), author=self.au1) self.a1.save() self.a2 = Article(headline='Article 2', pub_date=datetime(2005, 7, 27), author=self.au1) self.a2.save() self.a3 = Article(headline='Article 3', pub_date=datetime(2005, 7, 27), author=self.au1) self.a3.save() self.a4 = Article(headline='Article 4', pub_date=datetime(2005, 7, 28), author=self.au1) self.a4.save() self.a5 = Article(headline='Article 5', pub_date=datetime(2005, 8, 1, 9, 0), author=self.au2) self.a5.save() self.a6 = Article(headline='Article 6', pub_date=datetime(2005, 8, 1, 8, 0), author=self.au2) self.a6.save() self.a7 = Article(headline='Article 7', pub_date=datetime(2005, 7, 27), author=self.au2) self.a7.save() # Create a few Tags. self.t1 = Tag(name='Tag 1') self.t1.save() self.t1.articles.add(self.a1, self.a2, self.a3) self.t2 = Tag(name='Tag 2') self.t2.save() self.t2.articles.add(self.a3, self.a4, self.a5) self.t3 = Tag(name='Tag 3') self.t3.save() self.t3.articles.add(self.a5, self.a6, self.a7)
def create_blog(): if 'userid' not in session: flash('Must be logged in to create blog', 'error') return redirect('/') if request.method == 'POST': tags = None if len(request.form['tags']) > 0: tags = [x.strip() for x in request.form['tags'].split(',')] validate_blog = Blog.validate_blog(request.form) if validate_blog: blog_data = blog_schema.dump(request.form) blog_data.data['content'] = request.form['editordata'] blog_data.data['user_id'] = session['userid'] new_blog = Blog.create_blog(blog_data.data) if tags: Tag.create_tags(data={'tags': tags, 'blog': new_blog.id}) file = request.files['file'] # if user does not select file, browser also # submit an empty part without filename if file and allowed_file(file.filename): filename = '{}_'.format(new_blog.id) + secure_filename( file.filename) file.save( os.path.join(app.config['BLOG_UPLOAD_FOLDER'], filename)) Blog.update_picture(data={ 'id': new_blog.id, 'filepath': filename }) return redirect('/blogs/{}'.format(new_blog.id)) tags = Tag.query.all() for tag in tags: tag.usage = len(tag.tag_has_blogs) return render_template('create_blog.html', tags=tags)
def get(self, *args, **kwargs): ''' This will let you delete a given tag from the system ''' tags = Tag.all() try: uuid = self.get_argument('tag') if uuid != None: tag = Tag.by_uuid(uuid) if tag != None: self.dbsession.delete(tag) tags = Tag.all() self.render( "admin/manage_tags.html", success="Successfuly deleted tag from the system", tags=tags) else: self.render("admin/manage_tags.html", errors="Please Select a Tag", tags=tags) else: self.render("admin/manage_tags.html", errors="Please Select a Tag", tags=tags) except Exception as e: self.render("admin/manage_tags.html", errors="Invalid Tag Selected", tags=tags)
def addpost(request): if request.POST: #files = upload_receive(request) form = PostForm(request.POST, request.FILES) if form.is_valid(): f2 = form.save(commit=False) f2.pub_date = datetime.now() f2.save() tags = f2.tags tags = tags.split(',') tagobjs = Tag.objects.all() taglist=[] for i in tagobjs: #Adding new tags taglist.append(i.name) for i in tags: if i not in taglist: obj = Tag(name=i) obj.save() print 'saved' print obj print obj.name taglist.append(i) return HttpResponseRedirect('/blog/viewposts/') else: args = {} args.update(csrf(request)) args['form']=form args['error']='Some error in form' return render_to_response('addpost.html',args) else: args = {} args.update(csrf(request)) args['form'] = PostForm() return render_to_response('addpost.html',args)
def post(): longitude = request.form.get('longitude', '') latitude = request.form.get('latitude', '') treasure = request.form.getlist('treasure') if not (isfloat(latitude) and isfloat(longitude) and treasure): return redirect('/post.html') try: tags = [Tag.get(tag=x) for x in treasure] except Tag.DoesNotExist: return redirect('/post.html') x, obj_created = Point.get_or_create( latitude=latitude, longitude=longitude, defaults={'treasure': ', '.join(treasure)}) # type:Point,bool if obj_created: for y in tags: PointTag.create(tag=y, point=x) l = LogPoint.create(latitude=latitude, longitude=longitude, treasure=', '.join(treasure), created_date=x.created_date) else: return render_template('post.html', tags=Tag.select().execute(), message='坐标已存在') # return render_template('post.html') # return '坐标已存在 <a href="/post.html">重新分享</a>' return redirect('/')
def editarticle(request,aid): article=Article.objects.get(id=aid) maincat=MainCat.objects.all() nart,cart,rart,cm,tg=getthree() if request.method=='POST': title=request.POST['title'] tags=request.POST['tag'] cat=request.POST['cat'] content=request.POST['content'] tags=tags.split(',') tagm=[] for i in tags: a=Tag.objects.filter(tag=i) if a: tagm.append(a[0]) else: t=Tag(tag=i) t.save() tagm.append(t) article.user=request.user article.title=title article.content=content if cat.find('mc')>0: maincat=MainCat.objects.get(id=cat[:cat.find('m')]) article.maincat=maincat elif cat.find('-')==-1: dcat=DetailCat.objects.get(id=cat) article.maincat=dcat.maincat article.detailcat=dcat else: pass article.save() article.tag=tagm article.save() return redirect(getarticle,article.id) #日历 today=today=datetime.datetime.now() s=calendar.HTMLCalendar(6) cals=list(s.itermonthdays2(today.year,today.month)) tdarts=Article.objects.values('id','createtime').filter(createtime__year=today.year,createtime__month=today.month).order_by('createtime') #列表字典[{'createtime': datetime.datetime(2014, 4, 6, 4, 36, 32, 896000, tzinfo=<UTC>)}, tdart=set([i['createtime'].day for i in tdarts]) tmpq=Article.objects.exclude(createtime__year=today.year,createtime__month=today.month) premon=tmpq.filter(createtime__lt=today).order_by('-createtime')[:1] aftmon=tmpq.filter(createtime__gt=today).order_by('createtime')[:1] tt=[] for i in cals: tt.append(list(i)) ttt=[] for a in tt: for i in tdart: if a[0] == i: a.append(1) if len(a)==2: a.append(0) ttt.append(a) return render_to_response('new.htm',locals(),context_instance=RequestContext(request))
def post(self): json_data = request.json errors = PostSchema_add().validate(json_data) if errors: return errors tags = json_data.get('tag') tags_list = [] for i in tags: tag = Tag.objects(name=i) if len(tag) == 0: tag = Tag(name=i).save() else: tag = tag[0] tags_list.append(tag) author_field = json_data.get('author') if author_field is None: return {'errors': 'Not field author'} author = Author.objects(first_name=author_field['first_name'], last_name=author_field['last_name']) if len(author) == 0: author = Author(first_name=author_field['first_name'], last_name=author_field['last_name']) author.save() else: author = author[0] try: p = Post(name=json_data.get('name'), description=json_data.get('description')) p.author = author p.tag = tags_list p.save() user_json = p.to_json() return json.loads(user_json) except (ValidationError, NotUniqueError) as errors: print(errors)
def setUp(self): """add two users""" user1 = User(first_name="TestFirstName1", last_name="TestLastName1", image_url="https://ca-times.brightspotcdn.com/dims4/default/1d338c3/2147483647/strip/true/crop/4928x3264+0+0/resize/840x556!/quality/90/?url=https%3A%2F%2Fcalifornia-times-brightspot.s3.amazonaws.com%2F45%2F09%2F7c8d7171490d9c8744534920524a%2Fpet-store-adobestock-285952143.jpeg") user2 = User(first_name="TestFirstName2", last_name="TestLastName2", image_url="") db.session.add(user1) db.session.add(user2) db.session.commit() self.user1_id = user1.id self.user2_id = user2.id self.user1 = user1 post = Post(title="postTitle", content="postContent", user_id=user1.id) db.session.add(post) db.session.commit() self.post_id = post.id self.post = post self.client = app.test_client() t1 = Tag(name="Fun") t2 = Tag(name="Even More") db.session.add_all([t1, t2]) db.session.commit() self.tag_id = t1.id self.tag = t1
def editProject(pid): project = Project.query.filter_by(id=pid).first() user = User.query.filter_by(id=session.get('user_id')).first() form = EditProjectForm(request.form) if request.method == 'POST' and form.validate(): if user == project.author: if form.title.data: project.title = form.title.data if form.status.data: project.public = not project.public if form.tags.data: newTags = form.tags.data newTags = newTags.split(',') oldTags = Tag.query.filter_by(project_id=project.id).all() for tag in oldTags: db_session.delete(tag) for tag in newTags: if tag.strip() != "": tag = Tag(tag.strip(), project.id) db_session.add(tag) db_session.add(project) db_session.commit() return redirect(url_for('project', pid=project.id)) return redirect(url_for('index')) return render_template('edit.html', form=form, project=project)
def parse_page(self, response): hxs = HtmlXPathSelector(response) title = hxs.select('//h1[@class="title"]/text()').extract() if title and isinstance(title, list): title = title[0] url = response.url tags = hxs.select('//dl[@id="viewExtCati"]/dd/a/text()').extract() items = hxs.select('//dd[@class="relative"]/div/a/@href').extract() try: pattern_items = [re.search(pattern, item) for item in items] related_items = [item.group(1) for item in pattern_items if item] except Exception as err: print(err) return try: num = response.request.meta['view_num'] except Exception as err: print(err) return tag = Tag(name=title, url=url, num=num, tags=tags, related_items=related_items) try: print("parse title %s, view num: %s" %(title, num)) tag.save() except Exception as err: print(err) return
def login(): """Homepage with login""" # Get all of the authenticated user's friends tag_names = [str(tag.tag_name) for tag in Tag.get_all_tags()] session['tag_names'] = tag_names top_6_tags = Tag.get_most_popular_tags(6) return render_template("login.html", top_6_tags=top_6_tags)
def save_tag( request ) : user_agent = request.META['HTTP_USER_AGENT'] tagname = request.GET['tagname'] #will to be validate a tagname tag = Tag( name = tagname ) tag.save() return render_to_response(u'tag_saved.html',locals())
def get(self, name = ''): objs = Tag.get_tag_page_posts(name, 1) catobj = Tag.get_tag_by_name(name) if catobj: pass else: self.redirect(BASE_URL) return allpost = catobj.id_num allpage = allpost/EACH_PAGE_POST_NUM if allpost%EACH_PAGE_POST_NUM: allpage += 1 output = self.render('index.html', { 'title': "%s - %s"%( catobj.name, SITE_TITLE), 'keywords':catobj.name, 'description':SITE_DECR, 'objs': objs, 'cats': Category.get_all_cat_name(), 'tags': Tag.get_hot_tag_name(), 'page': 1, 'allpage': allpage, 'listtype': 'tag', 'name': name, 'namemd5': md5(name.encode('utf-8')).hexdigest(), 'comments': Comment.get_recent_comments(), 'links':Link.get_all_links(), },layout='_layout.html') self.write(output) return output
def test_update(self): order = Order(name="Dummy Order") order.save() for i in range(2): item = Item(name="Item %i" % i, sku=str(i) * 13, price=D("9.99"), order=order, status=0) item.save() tag = Tag(name="Test", content_object=order) tag.save() res = self.client.get("/inlines/1/") self.assertEqual(res.status_code, 200) order = Order.objects.get(id=1) self.assertEquals(2, order.item_set.count()) self.assertEquals("Item 0", order.item_set.all()[0].name) data = { "name": u"Dummy Order", "item_set-TOTAL_FORMS": u"4", "item_set-INITIAL_FORMS": u"2", "item_set-MAX_NUM_FORMS": u"", "item_set-0-name": "Bubble Bath", "item_set-0-sku": "1234567890123", "item_set-0-price": D("9.99"), "item_set-0-status": 0, "item_set-0-order": 1, "item_set-0-id": 1, "item_set-1-name": "Bubble Bath", "item_set-1-sku": "1234567890123", "item_set-1-price": D("9.99"), "item_set-1-status": 0, "item_set-1-order": 1, "item_set-1-id": 2, "item_set-2-name": "Bubble Bath", "item_set-2-sku": "1234567890123", "item_set-2-price": D("9.99"), "item_set-2-status": 0, "item_set-2-order": 1, "item_set-3-DELETE": True, "tests-tag-content_type-object_id-TOTAL_FORMS": 3, "tests-tag-content_type-object_id-INITIAL_FORMS": 1, "tests-tag-content_type-object_id-MAX_NUM_FORMS": u"", "tests-tag-content_type-object_id-0-name": u"Test", "tests-tag-content_type-object_id-0-id": 1, "tests-tag-content_type-object_id-0-DELETE": True, "tests-tag-content_type-object_id-1-name": u"Test 2", "tests-tag-content_type-object_id-2-name": u"Test 3", } res = self.client.post("/inlines/1/", data, follow=True) self.assertEqual(res.status_code, 200) order = Order.objects.get(id=1) self.assertEquals(3, order.item_set.count()) self.assertEquals(2, Tag.objects.count()) self.assertEquals("Bubble Bath", order.item_set.all()[0].name)
def get(self, name=''): objs = Tag.get_tag_page_posts(name, 1) catobj = Tag.get_tag_by_name(name) if catobj: pass else: self.redirect(BASE_URL) return allpost = catobj.id_num allpage = allpost / EACH_PAGE_POST_NUM if allpost % EACH_PAGE_POST_NUM: allpage += 1 output = self.render('index.html', { 'title': "%s - %s" % (catobj.name, SITE_TITLE), 'keywords': catobj.name, 'description': SITE_DECR, 'objs': objs, 'cats': Category.get_all_cat_name(), 'tags': Tag.get_hot_tag_name(), 'page': 1, 'allpage': allpage, 'listtype': 'tag', 'name': name, 'namemd5': md5(name.encode('utf-8')).hexdigest(), 'comments': Comment.get_recent_comments(), 'links': Link.get_all_links(), }, layout='_layout.html') self.write(output) return output
def getTop(self, request): topics = memcache.get('top:all') if not topics: q = Topic.query() q = q.filter(Topic.vote > 0) q = q.order(-Topic.vote) if request.limit > 50: limit = 50 else: limit = request.limit q = q.fetch(limit) topics = [self._copyTopicToForm(t) for t in q] memcache.set('top:all', topics) sum_tags = [ self._copyTagToForm(Tag(tag=t[0], score=t[1])) for t in self._sumTag(topics) ] memcache.set('tag:top:all', sum_tags) else: sum_tags = memcache.get('tag:top:all') if not sum_tags: sum_tags = [ self._copyTagToForm(Tag(tag=t[0], score=t[1])) for t in self._sumTag(topics) ] memcache.set('tag:top:all', sum_tags) # freq_tags = memcache.get('tag:top:all') # if not freq_tags: # tags = [] # for topic in topics: # tags.extend(topic.tags) # freq_tags = [self._copyTagToForm(Tag(tag=t[0], score=t[1])) for t in self._freqTag(tags)] # memcache.set('tag:top:all', freq_tags) n = len(topics) return TopicForms(topics=topics, length=n, tags=sum_tags)
def tag_helper(data, name_field, dataset, tag): mps = MapPoint.objects.filter(dataset_id=dataset) tags = Tag.objects.filter(dataset_id=dataset).filter(tag=tag) if tags.count() > 1: appr_tags = tags.filter(approved=True) if appr_tags.count() > 0: tags = appr_tags tag = tags[0] elif tags.count() == 0: tag = Tag(dataset_id=dataset, tag=tag, approved=True) tag.save() else: tag = tags[0] regex = re.compile('[%s]' % re.escape(string.punctuation)) for item in data: name = regex.sub(r'[\'\'\.-]*', item[name_field]) print name for mp in mps.filter(name__iregex=name): print mp.name t = TagIndiv(tag=tag, mapelement=mp) try: t.save() except IntegrityError: # violate unique restraint so just don't save it pass
def tag_handler(tag_id): if request.method == 'GET': tag = Tag.get(tag_id) if tag is not None: return jsonify(tag=[tag.serialize]) else: raise InvalidUsage('Not Found', status_code=404) if request.method == 'PUT': tag = Tag.get(tag_id) if tag is not None: name = request.args.get('name') description = request.args.get('description') updated_tag = tag.update(name, description) return jsonify(tag=[updated_tag.serialize]) else: raise InvalidUsage('Not Found', status_code=404) if request.method == 'DELETE': tag = Tag.get(tag_id) if tag is not None: deleted = tag.delete() if deleted: return jsonify(status='OK') else: raise InvalidUsage('Unknown Error', status_code=520) else: raise InvalidUsage('Not Found', status_code=404)
def ask_display(request): if not request.user.is_authenticated(): raise PermissionDenied if request.method == 'POST': request_title = request.POST.get('title') request_text = request.POST.get('text') request_tags = request.POST.get('tags') if request_title == '' or request_text == '': return render(request, 'ask.html', {'page_title': 'New Question', 'errors': '1'}) new_question = Question(title = request_title, date = datetime.datetime.now(), author = UserProfile.objects.get(user_account = request.user), text = request_text) new_question.save() for tag_str in request_tags.split(','): if Tag.objects.filter(name = tag_str).exists(): tag = Tag.objects.get(name = tag_str) new_question.tags.add(tag) else: new_tag = Tag(name = tag_str) new_tag.save() new_question.tags.add(new_tag) return HttpResponseRedirect('/question/{}'.format(new_question.id)) return render(request, 'ask.html', {'page_title': 'New Question', 'errors': '0'})
def post(self): update = self.request.get('update', False) cate_name = self.request.get('cate_name') tags_list = self.request.get_all('tags_name', []) title = self.request.get('title') blog = self.request.get('blog') if not blog: self.response.write('blog content empty!') cate = Category.query(Category.title==cate_name).get() if not cate: cate = Category(title=cate_name) cate.put() print tags_list tags = Tag.query(Tag.title.IN(tags_list)).fetch() tags_old = [tag.title for tag in tags] tags_new = [] for tag in tags_list: if tag not in tags_old: tag = Tag(title=tag) tag.put() tags_new.append(tag) print tags print tags_new tags += tags_new print tags print '===' print dir(tags[0]) tags = [tag.key for tag in tags] blog = Blog(title=title, text=blog, category=cate.key, tags=tags) blog.put() self.response.write('blog publish success') self.response.set_status(200)
def edit_photo_view(request, photo_id): # try: # photo = Photo.objects.get(pk=photo_id) # except Photo.DoesNotExist: # raise Http404 photo = get_object_or_404(Photo, pk=photo_id) if photo.owner_id == request.user.id: if request.method == 'POST': form = EditPhotoForm(request.user, data=request.POST or None, instance=photo) if form.is_valid(): photo = form.save() if form.cleaned_data['tag']: tag = Tag(name=form.cleaned_data['tag']) tag.save() photo.tags.add(tag) photo.save() else: form.save() return redirect('photorizer.views.photo_view', photo.id) else: form = EditPhotoForm(instance=photo, current_user=request.user) context = {'form': form, 'photo': photo} # return render(request, 'photorizer/edit_photo.html', # {'form': form, 'photo': photo}) return render(request, 'photorizer/edit_photo.html', context) else: return render(request, 'photorizer/permission_denied.html')
def test_update(self): order = Order(name='Dummy Order') order.save() for i in range(2): item = Item(name='Item %i' % i, sku=str(i) * 13, price=D('9.99'), order=order, status=0) item.save() tag = Tag(name='Test', content_object=order) tag.save() res = self.client.get('/inlines/1/') self.assertEqual(res.status_code, 200) order = Order.objects.get(id=1) self.assertEquals(2, order.item_set.count()) self.assertEquals('Item 0', order.item_set.all()[0].name) data = { 'name': u'Dummy Order', 'item_set-TOTAL_FORMS': u'4', 'item_set-INITIAL_FORMS': u'2', 'item_set-MAX_NUM_FORMS': u'', 'item_set-0-name': 'Bubble Bath', 'item_set-0-sku': '1234567890123', 'item_set-0-price': D('9.99'), 'item_set-0-status': 0, 'item_set-0-order': 1, 'item_set-0-id': 1, 'item_set-1-name': 'Bubble Bath', 'item_set-1-sku': '1234567890123', 'item_set-1-price': D('9.99'), 'item_set-1-status': 0, 'item_set-1-order': 1, 'item_set-1-id': 2, 'item_set-2-name': 'Bubble Bath', 'item_set-2-sku': '1234567890123', 'item_set-2-price': D('9.99'), 'item_set-2-status': 0, 'item_set-2-order': 1, 'item_set-3-DELETE': True, 'tests-tag-content_type-object_id-TOTAL_FORMS': 3, 'tests-tag-content_type-object_id-INITIAL_FORMS': 1, 'tests-tag-content_type-object_id-MAX_NUM_FORMS': u'', 'tests-tag-content_type-object_id-0-name': u'Test', 'tests-tag-content_type-object_id-0-id': 1, 'tests-tag-content_type-object_id-0-DELETE': True, 'tests-tag-content_type-object_id-1-name': u'Test 2', 'tests-tag-content_type-object_id-2-name': u'Test 3', } res = self.client.post('/inlines/1/', data, follow=True) self.assertEqual(res.status_code, 200) order = Order.objects.get(id=1) self.assertEquals(3, order.item_set.count()) self.assertEquals(2, Tag.objects.count()) self.assertEquals('Bubble Bath', order.item_set.all()[0].name)
def post_update_post(id): postid = request.forms.get('postid') title = request.forms.get('title').decode('utf-8') slug = request.forms.get('slug').decode('utf-8') post = request.forms.get('post') tags = request.forms.get('tags').decode('utf-8') category = request.forms.get('category').decode('utf-8') post_type = request.forms.get('postype') if post_type == 'HTML': is_html = 1 content = post.decode('utf-8') markdown = u'html' else: is_html = 0 markdown = post.decode('utf-8') content = to_markdown(markdown) category = Category.get(name=category) Post.update(title=title, slug=slug, content=content, markdown=markdown, tags=tags, category=category, is_html=is_html).where(id=postid).execute() tag_list = set(tags.split(",")) for tag in tag_list: try: Tag.get(name=tag.strip(), post_id=postid) except Post.DoesNotExist: Tag.create(name=tag.strip(), post_id=postid) redirect("/%s" % slug)
def post_new_post(): title = request.forms.get('title').decode('utf-8') slug = request.forms.get('slug').decode('utf-8') post = request.forms.get('post') tags = request.forms.get('tags').decode('utf-8') category = request.forms.get('category').decode('utf-8') post_type = request.forms.get('postype') set_time = request.forms.get('setime') if set_time != '1': t = [int(tt) for tt in set_time.split('-')] d = datetime.datetime(*t) published = d else: published = datetime.datetime.now() if post_type == 'HTML': is_html = 1 content = post.decode('utf-8') markdown = u'html' else: is_html = 0 markdown = post.decode('utf-8') content = to_markdown(markdown) category = Category.get(name=category) post = Post.create(title=title, slug=slug.strip(), content=content, markdown=markdown, tags=tags, category=category, is_html=is_html, published=published, comm_count=0) for tag in post.tags_list(): Tag.create(name=tag.strip(), post_id=post.id) redirect("/%s" % slug)
class AlbumTest(TestCase): def setUp(self): self.user = User(username='******', email='*****@*****.**', first_name='Sherlock', last_name="Holmes", password='******') self.user.full_clean() self.user.save() self.photo = Photo(owner=self.user, image='images/test.png', name='test', caption='testing') self.photo.clean() self.photo.save() self.tag = Tag(name='test tag', owner=self.user) self.tag.clean() self.tag.save() self.photo.tags.add(self.tag) self.album = Album(owner=self.user, name='test album') self.album.clean() self.album.save() self.album.photos.add(self.photo) def test_id_creation(self): self.assertIsNotNone(self.album.id) def test_owner_entry(self): self.assertEqual(self.album.name, 'test album') def test_name_entry(self): self.assertEqual(self.photo.name, 'test') def test_album_to_photo_association(self): photos = Photo.objects.filter(album=self.album.id) self.assertEqual(photos[0].name, 'test')
def bookmark_add(): error = {} bookmark = {} user = auth.get_logged_in_user() if request.method == 'POST': if not request.form['url']: error['url'] = u'书签的网址不能为空' if not request.form['url'].startswith('http://') and not request.form['url'].startswith('https://'): request.form['url'] = ''.join(['http://', request.form['url']]) if not error: try: bookmark = Bookmark.select().where(Bookmark.user == user, Bookmark.url == request.form['url'] ).get() except Bookmark.DoesNotExist: try: db.database.set_autocommit(False) bookmark = Bookmark.create( user=user, url=request.form['url'], title=request.form['title'] ) bookmark.fetch_image() bookmark.save() tagnames = re.split('\s+', request.form['tags'].strip()) # marksure request.form['tags'] not a empty string if tagnames[0]: for tagname in tagnames: if not Tag.select().where(Tag.user == user, Tag.name == tagname ).exists(): tag = Tag.create(user=user, name=tagname) tag.save() relationship = Relationship.create( user=user, tag=tag, bookmark=bookmark) relationship.save() except Exception as e: db.database.rollback() flash(u'对不起,服务器太累了,刚罢工了一会儿', 'error') else: try: db.database.commit() except Exception as e: db.database.rollback() flash(u'对不起,服务器太累了,刚罢工了一会儿', 'error') finally: db.database.set_autocommit(True) if not get_flashed_messages(): flash(u'你已经成功添加一个书签', 'success') return redirect(url_for('bookmark')) else: flash(Markup(u'书签已经存在,也许你想要<a href="' + url_for('bookmark_edit', id=bookmark.id) + u'">编辑</a>此书签'), 'info') return render_template('bookmark_add.html', error=error, form=request.form, user=user, bookmark=bookmark)
def post_article(request, success_url = "/", template="articles/post.html"): """ Post new article """ if request.method == 'POST': form = ArticleForm(request.POST) if form.is_valid(): title = form.cleaned_data['title'] content = form.cleaned_data['content'] tags = form.cleaned_data['tags'] # new article art = Article(title=title,content=content,slug=slugify(title),author=request.user) art.save() # add tags for tag in tags: try: t = Tag.objects.get(name=tag) except Tag.DoesNotExist: t = None # if t doesnt exist if t is None: t = Tag(name=tag,slug=slugify(tag)) t.save() # add the tag to the article art.tags.add(t) # set meta art.set_meta() # done here return HttpResponseRedirect(success_url) else: form = ArticleForm() return render_to_response(template, {'form':form}, context_instance=RequestContext(request))
def post(self, *args, **kwargs): ''' Create the Dork in the system ''' form = Form(title="Please enter a title", description="Please enter a Description", author="Please Enter an Author", query="Please Enter the Shodan Hq Search Query", tag="Please Select a Category") try: #Getting the user session_manager = SessionManager.Instance() session = session_manager.get_session( self.get_secure_cookie('auth'), self.request.remote_ip) user = User.by_user_name(session.data['user_name']) #Get the tag old_tag = Tag.by_name(self.get_argument('tag')) #Get all the tags tags = Tag.all() if user != None: if form.validate(self.request.arguments): old_dork = Dork.by_title(self.get_argument('title')) if old_dork: self.render( 'user/submit.html', user=user, errors=[ 'A Dork by this title has already been submitted' ], success=None, tags=tags) elif old_tag == None: self.render( 'user/submit.html', user=user, errors=[ 'A Dork by this title has already been submitted' ], success=None, tags=tags) else: self.create_dork(user) self.render('user/submit.html', user=user, success='Successfully created new Dork', errors=None, tags=tags) else: self.render('user/submit.html', user=user, errors=form.errors, success=None, tags=tags) else: self.render('public/please_login.html') except Exception as e: print e self.render('public/please_login.html')
def get(self, tag_name): page = int(self.request.get('page', 1)) offset = (page - 1) * self.LIST_PER_PAGE tag = Tag.get_by_name(tag_name) self.list = Tag.get_article_list(tag=tag, limit=self.LIST_PER_PAGE, offset=offset) if tag else None self.count = tag.count if tag else 0 return Action.Result.DEFAULT
def test_create_tag(self): """Create a tag and assert that its fields appear as expected.""" tag = Tag(text='Test Tag') tag.full_clean() tag.save() self.assertIsInstance(tag, Tag) self.assertEqual(tag.text, 'Test Tag') self.assertIsInstance(tag.date_created, datetime)
def eval(self, platform, tag): warning = '' if not select(count(t) for t in Tag if t.platform == platform.lower())[:][0]: platforms = ', '.join(sorted(select(t.platform for t in Tag)[:])) warning = bold('WARNING: creating a new platform. Please check that the platform doesn\'t already ' 'exist by another name.\n') + 'Current platforms are ' + platforms + '\n' Tag.create_or_update(user=self.user, platform=platform.lower(), tag=tag) return "%s%s added as %s tag for %s" % (warning, tag, platform.title(), self.name)
def create(request): tag = Tag.objects.get(id=4) print 'TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT' print tag Tag.get_items(tag) returnData = Item.objects.makeItem(request) # print request.session['user'].get('username') return redirect('/products')
def tags_create(): """Handle form submission for creating a new tag""" new_tag = Tag(name=request.form.get('name')) message_ids = [int(num) for num in request.form.getlist("messages")] new_tag.messages = Message.query.filter(Message.id.in_(message_ids)) db.session.add(new_tag) db.session.commit() return redirect(url_for('tags_index'))
def create_tags(): names = [u"news", u"article", u"interview", u"test", u"review", u"témoignage"] for name in names: tag = Tag() name = LocalizedString(value=name, lang=u"fr") tag.name = name db.session.add(tag) db.session.commit()
def store_tag(text, message): #Construct the tag. tag = Tag() tag.tag = text tag.message = message tag.save() return tag
def newarticle(request): if not request.user.is_authenticated(): return redirect('/Login/?next=%s' % request.path) if request.method=='POST': title=request.POST['title'] tags=request.POST['tag'] cat=request.POST['cat'] content=request.POST['content'] tags=tags.split(',') tagm=[] print tags for i in tags: a=Tag.objects.filter(tag=i) if a: tagm.append(a[0]) else: t=Tag(tag=i) t.save() tagm.append(t) if cat.find('mc')>0: maincat=MainCat.objects.get(id=cat[:cat.find('m')]) ar=Article(user=request.user,title=title,content=content,maincat=maincat) elif cat.find('-')==-1: dcat=DetailCat.objects.get(id=cat) maincat=dcat.maincat ar=Article(user=request.user,title=title,content=content,detailcat=dcat,maincat=maincat) else: ar=Article(user=request.user,title=title,content=content) ar.save() ar.tag=tagm ar.save() return redirect(getarticle,ar.id) maincat=MainCat.objects.all() nart,cart,rart,cm,tg=getthree() #日历 today=today=datetime.datetime.now() s=calendar.HTMLCalendar(6) cals=list(s.itermonthdays2(today.year,today.month)) tdarts=Article.objects.values('id','createtime').filter(createtime__year=today.year,createtime__month=today.month).order_by('createtime') #列表字典[{'createtime': datetime.datetime(2014, 4, 6, 4, 36, 32, 896000, tzinfo=<UTC>)}, tdart=set([i['createtime'].day for i in tdarts]) tmpq=Article.objects.exclude(createtime__year=today.year,createtime__month=today.month) premon=tmpq.filter(createtime__lt=today).order_by('-createtime')[:1] aftmon=tmpq.filter(createtime__gt=today).order_by('createtime')[:1] tt=[] for i in cals: tt.append(list(i)) ttt=[] for a in tt: for i in tdart: if a[0] == i: a.append(1) if len(a)==2: a.append(0) ttt.append(a) return render_to_response('new.htm',locals(),context_instance=RequestContext(request))
def post_create_user(sender, instance, created, **kwargs): print "Post save emited for", instance users = User.objects.filter(username="******") if created and len(users) > 0: user_template = users[0] print "user_template", user_template user = instance image_types = ImageType.objects.filter(user=user_template) print "image_types", image_types print 'mkdir {0}{1}'.format(BASE_DIR+'/segment/static/uploads/',str(user_template.id),str(user.id)) os.popen('cp -a {0}{1} {0}{2}'.format(BASE_DIR+'/segment/static/uploads/',str(user_template.id),str(user.id))) for image_type in image_types: print "imagetype", image_type #folder_random_name = get_random_name() #print 'mkdir {0}{1}/{2}'.format(BASE_DIR+'/segment/static/uploads/',str(user.id),folder_random_name) #os.popen('mkdir {0}{1}/{2}'.format(BASE_DIR+'/segment/static/uploads/',str(user.id),folder_random_name)) #os.popen('mkdir {0}{1}/{2}/segments'.format(BASE_DIR+'/segment/static/uploads/',str(user.id),folder_random_name)) #os.popen('mkdir {0}{1}/{2}/segments'.format(BASE_DIR+'/segment/static/uploads/',str(user.id),folder_random_name)) it = ImageType() it.name=image_type.name it.user = user it.folder = image_type.folder it.save() it.users_shared.add(user) tags = Tag.objects.filter(image_type=image_type) for tag in tags: t = Tag() t.name = tag.name t.image_type = it t.save() images = Image.objects.filter(image_type=image_type) print "images", images for image in images: i = Image() i.name = image.name i.image_type = it i.filename = str(image.filename).replace('/'+str(user_template.id)+'/','/'+str(user.id)+'/') #print 'cp "{0}{1}" "{2}{3}"'.format(BASE_DIR+'/segment/static/',str(image.filename),BASE_DIR+'/segment/static/' ,str(i.filename)) #os.popen('cp "{0}{1}" "{2}{3}"'.format(BASE_DIR+'/segment/static/',str(image.filename),BASE_DIR+'/segment/static/' ,str(i.filename))) i.parent_segment = image.parent_segment i.save() segments = Segment.objects.filter(image=image) print "image id", image.id, "segments", len(segments), segments for segment in segments: s = Segment() s.x1 = segment.x1 s.y1 = segment.y1 s.x2 = segment.x2 s.y2 = segment.y2 s.image = i s.filename = str(segment.filename).replace('/'+str(user_template.id)+'/','/'+str(user.id)+'/') #print 'cp "{0}{1}" "{2}{3}"'.format(BASE_DIR+'/segment/static/',str(segment.filename),BASE_DIR+'/segment/static/',str(s.filename)) #os.popen('cp "{0}{1}" "{2}{3}"'.format(BASE_DIR+'/segment/static/',str(segment.filename),BASE_DIR+'/segment/static/',str(s.filename))) s.save() for tag in segment.tags.all(): tag_new = Tag.objects.filter(image_type=it,name=tag.name) s.tags.add(tag_new[0])
def process_tags(tags, message, user): for tag in tags: try: new_tag = Tag.objects.get(name=tag, user=user) except Tag.DoesNotExist: new_tag = Tag(name=tag, user=user, type='user') new_tag.save() message_tag = MessageTag(tag=new_tag, message=message) message_tag.save()
def newTag(text): try: #Construct the tag. tag = Tag() tag.tag = text tag.save() return tag except Exception as e: print "ERROR CONSTRUCTING TAG: {}".format(e)
def api_tags(request, *, page='1'): check_admin(request) page_index = get_page_index(page) num = yield from Tag.findNumber('count(id)') p = Page(num, page_index) if num == 0: return dict(page=p, tags=()) tags = yield from Tag.findAll(orderBy='ctime desc', limit=(p.offset, p.limit)) return dict(page=p, tags=tags)
class TagTest(TestCase): def setUp(self): self.user1 = User.objects.create_user('tester1', 'tester1') self.tag = Tag(content="test", creator=self.user1) self.tag.save() def test_creator(self): self.assertEqual(self.tag.creator, self.user1) self.assertTrue(self.tag in self.user1.tags_i_created.all())
def setUp(self): """Make demo data.""" db.drop_all() db.create_all() t1 = Tag(name='glass art') t2 = Tag(name='renovations') db.session.add_all([t1, t2]) db.session.commit()
def test_news_method(self): tag = Tag.new("DC") self.assertIs(tag, Tag.query.get(tag.id)) # create request context for flash messages with app.test_request_context() as ctx: dup_tag = Tag.new("DC") self.assertIsNone(dup_tag)
def admin_tag_edit(uid): try: tag_to_edit = Tag.get(Tag.id == uid) all_tags = Tag.select().where(Tag.id != tag_to_edit.id) except Tag.DoesNotExist: abort(404) return render_template('tag_edit.html', editing=True, tag_to_edit=tag_to_edit, all_tags=all_tags)
def edit_post(post_id): post = Post.query.get(post_id) post.title = request.form['title'] post.content = request.form['content'] db.session.commit() tags = request.form.getlist('tags') Tag.fill_tags(tags, post_id) return redirect(f"/posts/{post.id}")
def post(self): data = super().post() name = data.get('name') items = Tag.query.filter_by(name=name).all() if items: return self.abort(f'Tag with the name "{name}" already exists!') new_item = Tag(name=name) self.session.add(new_item) self.session.commit() return self.make_response(new_item.serialize())
def create_question(request, question_id=None): '''create or update a answer based on a question id''' user = request.user if request.POST: #save form question = None question_id = request.POST["question_id"] if question_id: #editing question = Question.objects.get(id=question_id) form = QuestionForm(request.POST, instance=question) if form.is_valid(): author = user.username question = form.save(commit=False) question.author = user question.save() currentTags = question.tags.all() for eachTag in currentTags: question.tags.remove(eachTag) tags = request.POST['tags'] if tags: tags = tags.split(",") print >> sys.stderr, repr(tags) for eachTag in tags: thisTag = Tag.objects.filter(text=eachTag) if not thisTag: #new tag tag = Tag(text=eachTag.strip()) tag.save() else: #old tag tag = thisTag[0] question.tags.add(tag) return HttpResponseRedirect('/hello/question/%s' % question.id) else: #show form args = {} question = None tags = "" if question_id: #editing current question = Question.objects.get(id=question_id) args['question'] = question args['command'] = "Update" tags = ",".join(question.tags.values_list("text", flat=True)) else: args['command'] = "Create" form = QuestionForm(tags=tags, instance=question) args['form'] = form return render_to_response("create_question.html", args, context_instance=RequestContext(request))
def add_tag(): ''' Add new user or team tag to post Id's for users and teams are kept separate and unique by prepending with 'u' or 't' TODO: sort of backwards to send this to client and then back to server to send email notifications. Call directly from here Args: - post_id: post id for parent post - tag_ids: | delimited string with user or team ids for tags - tag_text: | delimited string with text of tags (team and user names) Returns: -json including tagged_user_ids and tagged_team_ids ''' user_id = g.user.id form = request.form post_id = form.get("parent_post_id") tag_ids = request.form['tag_ids'].split('|') tag_text = request.form['tag_text'].split('|') tagged_user_ids = [] # used in kudos.js for send_notifications tagged_team_ids = [] for i in range(len(tag_ids)-1): #last index will be "" because of delimiters #USER TAGS if tag_ids[i][0] == 'u': tag_user_id = int(tag_ids[i][1:]) #remove leading 'u' to convert back to int user_id new_tag = Tag(user_tag_id=tag_user_id, body=tag_text[i], post_id=post_id, tag_author=user_id, time=datetime.utcnow()) tagged_user = User.query.filter_by(id=tag_user_id).first() # get tag information to create avatars client side db.session.add(new_tag) tagged_user_ids.append(tagged_user.id) #TEAM TAGS if tag_ids[i][0] == 't': tag_team_id = int(tag_ids[i][1:]) #remove leading 't' to convert back to int team_id new_tag = Tag(team_tag_id=tag_team_id, body=tag_text[i], post_id=post_id, tag_author=user_id, time=datetime.utcnow()) tagged_team = Team.query.filter_by(id=tag_team_id).first() db.session.add(new_tag) tagged_team_ids.append(tagged_team.id) db.session.commit() new_tag_dict={} new_tag_dict['tagged_user_ids'] = tagged_user_ids new_tag_dict['tagged_team_ids'] = tagged_team_ids tag_info_json = json.dumps(new_tag_dict) return tag_info_json
def index(): user = User(username="******", email="*****@*****.**") article = Article(title="教你礼尚往来", content="我喜欢你你也得喜欢我") article.author = user tag1 = Tag(name="python") tag2 = Tag(name="java") article.tags.append(tag1) article.tags.append(tag2) db.session.add(article) db.session.commit() return 'hello world'
def setUp(self): """Remove existing tables, create sample user""" Tag.query.delete() Article.query.delete() # intermediate tables should have been removed due to on delete cascade self.tag = Tag(keyword="testing") db.session.add(self.tag) db.session.commit()
def index(): user = User(username='******', email='*****@*****.**') article = Article(title='flask is cool') article.author = user tag1 = Tag(name='Python') tag2 = Tag(name='Scrapy') article.tags.append(tag1) article.tags.append(tag2) db.session.add(article) db.session.commit() return 'hello world'
def add_data(): user = User(username='******', email='*****@*****.**') article = Article(title='钢铁是怎样炼成的', content='没有金刚钻就不揽瓷器活') article.author = user tag1 = Tag(name='人物传记') tag2 = Tag(name='故事会') article.tags.append(tag1) article.tags.append(tag2) db.session.add(article) db.session.commit() print('添加数据成功')
def create_tag_if_not_found(tagnum): taglock.lock() try: Tag.objects.get(tagnum=tagnum) except ObjectDoesNotExist: t = Tag( tagnum=tagnum, tag=tagnum_to_tag(tagnum), ) t.save() taglock.unlock()
def create_tag(tagnum=None): taglock.lock() if tagnum is None: tagnum = generate_unique_tagnum() t = Tag( tagnum=tagnum, tag=tagnum_to_tag(tagnum), ) t.save() taglock.unlock() return t
def save(self): try: super(GenericTagInlineFormset, self).save() except TypeError, e: if e.message[0].startswith('Uniqueness'): tag = self.forms[0].instance new_item_type = tag.item_type obj = Tag.get_object(tag) tags = Tag.get_tags(obj) tags.update(item_type=new_item_type) self.save()
def hello_world(): user = User(username='******', email='*****@*****.**') article = Article(title='abc', content='123') article.author = user tag1 = Tag(name='前端') tag2 = Tag(name='Python') article.tags.append(tag1) article.tags.append(tag2) db.session.add(article) db.session.commit() return 'Hello World!'
def hello_world(): user = User(username='******', email='*****@*****.**') article = Article(title='他强任他强', content='老子何杨杨') article.author = user tag1 = Tag(name='篮球界代码写的最好') tag2 = Tag(name='代码界篮球打的最好') article.tags.append(tag1) article.tags.append(tag2) db.session.add(article) db.session.commit() return 'Hello World!'
def upload_new_question(question_source, question, tags): new_question = Question(question = question, question_source=question_source) new_question.save() tags_final = [] for tag in tags: try: search_tag = Tag.objects.get(tag=tag) tags_final.append(search_tag) continue except Tag.DoesNotExist: new_tag = Tag(tag=tag) new_tag.save() tags_final.append(new_tag) continue continue for tag in tags_final: print tag.tag for tag in tags_final: tag.questions.append(new_question) tag.save() continue return new_question.id