def save_data(userid, namehash, name, notices, geom): """ Inserts a notification area into the database. userid is the user id number of the row. namehash is the hash of the area name. name is the user-defined area name. notices is a json string of the notices object. geom is a json string of the geometry of the area. Returns True on success. """ newnotice = Notice(userid=userid, namehash=namehash, name=name, notices=notices, geom=geom) try: db_session.add(newnotice) db_session.commit() success = True except Exception as e: msg = 'Error adding notification:\n' + e.message raise DataError(msg) return True
def create_notice(user_id, text, attachment=''): new_notice = Notice() new_notice.text = text new_notice.attachment = attachment new_notice.date_of_create = datetime.now() new_notice.last_sending = datetime.now() new_notice.user_id = user_id new_notice.save()
def send_all_user(self, request, queryset): all_user = User.objects.all() for notice_content in queryset: for user in all_user: if 'admin' == user.username or 'manager' == user.username or user.id == notice_content.owner_id: continue else: Notice(owner_id=user.id,title=notice_content.title,content=notice_content.content,create_time=notice_content.create_time,has_read=False).save()
def new(request, node_slug): context = {} try: node = Node.objects.get(slug=node_slug) except Node.DoesNotExist: raise Http404 if request.method == 'POST': form = TopicForm(request.POST) if form.is_valid(): last_topic = Topic.objects.filter( author=request.user).order_by('-created_on')[:1] last_topic = last_topic.first() if last_topic and last_topic.title == form.clean()['title'] and ( (timezone.now() - last_topic.created_on).seconds < 10): messages.error(request, '你是否正在尝试连续提交两次相同的内容?') return HttpResponseRedirect( reverse("bbs:topic", args=(last_topic.id, ))) else: topic = form.save(commit=False) topic.node = node request.user.topic_num += 1 request.user.calculate_au() request.user.save() topic.author = request.user topic.last_reply = request.user topic.updated_on = timezone.now() topic.save() node.num_topics += 1 node.save() # --- 解析@ --- team_name_pattern = re.compile('(?<=@)(\w+)', re.UNICODE) at_name_list = set(re.findall(team_name_pattern, topic.content)) if at_name_list: for at_name in at_name_list: if at_name != topic.author.username: try: at_user = User.objects.get(username=at_name) if at_user: notice = Notice(from_user=topic.author, to_user=at_user, topic=topic, content='') notice.save() except: pass # --- 解析@ --- return HttpResponseRedirect( reverse("bbs:topic", args=(topic.id, ))) else: form = TopicForm() return render(request, 'bbs/new.html', {'node': node, 'form': form})
def create_notice_for_user(user, notice_title, notice_content): try: Notice(owner_id=user.id, title=notice_title, content=notice_content, create_time=datetime.datetime.now(), has_read=False).save() except: return 0
def create_notification(): form = InfoForm() if form.validate_on_submit(): create = Notice(name=form.name.data, content=form.content.data) db.session.add(create) db.session.commit() return redirect(url_for('dashboard')) return render_template('authentication/create_notification.html', form=form)
def addNotice(): if request.method == 'GET': return render_template('T_add_notice.html') else: title = request.form.get('title') content = request.form.get('content') with app.app_context(): notice = Notice(title=title, content=content) db.session.add(notice) # 事务提交 db.session.commit() return redirect(url_for('noticeManage'))
def write_notice(): if request.method == 'GET': return render_template('write_notice.html') else: # 写入数据库 title = request.form.get('title') content = request.form.get('content') school = session.get('school') notice = Notice(title=title, content=content, school=school) user_id = session.get('user_id') # 获取id user = User.query.filter(User.id == user_id).first() notice.author = user db.session.add(notice) db.session.commit() return redirect(url_for('notice'))
def parse_entry(self, entry): author_info = entry.find(self.ATOM + 'author') id = entry.find(self.STATUSNET + 'notice_info').attrib['local_id'] author = author_info.find(self.ATOM + 'name').text tstamp = entry.find(self.ATOM + 'published').text message = entry.find(self.ATOM + 'title').text message = message.replace('&', '&') avatar_url = '' for link in author_info.findall(self.ATOM + 'link'): if link.attrib['rel'] == 'avatar' \ and link.attrib[self.MEDIA + 'width'] == '48': avatar_url = link.attrib['href'] return Notice(id, author, message, tstamp, avatar_url)
def notice(id): course = Course.query.get(id) notices = course.notices.order_by(Notice.id.desc()).all() #:获取课程公告,按时间从近到远 form = NoticeForm() #:如果当前登录的教师没有教授这门课程,则禁止访问 if current_user.id != course.teacher.id: abort(403) if form.validate_on_submit(): notice = Notice(title=form.title.data, content=form.content.data, course_id=id) db.session.add(notice) db.session.commit() flash(u'发布公告成功!') return redirect(url_for('notice', id=id)) return render_template('teacherNotice.html', form=form, course=course, notices=notices)
def post(self): json_data = request.get_json() if not json_data: return {'message': 'Datos inválidos'}, 400 # Validations try: title = json_data['title'] url = json_data['url'] user_id = json_data['user_id'] except Exception as e: return {'message': 'No existen los campos necesarios'}, 400 # Save data my_notice = Notice(title=title, url=url, user_id=user_id) db.session.add(my_notice) try: db.session.commit() except Exception as e: db.session.rollback() return {'message': 'No se ha podido guardar la información'}, 500 return {'message': 'ok'}, 200
def post(self): parser = reqparse.RequestParser() parser.add_argument('titulo', type=str, required=True, help="Por favor ingrese un titulo valido") parser.add_argument('descripcion', type=str, required=True, help="Por favor ingrese una descripcion valida") parser.add_argument('resena', type=str, required=True, help="Por favor ingrese una resena valida") parser.add_argument('imagen', type=str, required=True, help="Por favor ingrese una imagen valida") parser.add_argument('autor', type=str, required=True, help="Por favor ingrese un autor valido") parser.add_argument('categoria', type=int, required=True, help="Por favor ingrese una categoria valido") args = parser.parse_args() global_f.base64_to_file(args) try: new_notice = Notice(**args) self.session.add(new_notice) self.session.flush() self.session.commit() return self._format_data_notice([(new_notice, )]) except Exception as error: return {"message": error}, 400
def like_shell(): session = db_session() shell_id = request.json.get("shell_id") type = request.json.get("type") receiver_id = session.query(Shell).filter(Shell.id == shell_id).first().user_id # type = 'like' sender_id = g.user.id token = g.user.generate_auth_token().decode('ascii') notice = Notice(sender_id=sender_id, receiver_id=receiver_id, type=type) usr = session.query(UserShellRelationship).filter(UserShellRelationship.user_id == sender_id, UserShellRelationship.shell_id == shell_id).first() if usr is None: usr = UserShellRelationship(user_id=sender_id, shell_id=shell_id, type=type) session.add(usr) session.add(notice) elif usr.type == type: print "delete!" session.query(Notice).filter(Notice.sender_id == sender_id, Notice.receiver_id == receiver_id, Notice.type == type).delete(synchronize_session=False) session.delete(usr) elif usr.type == "like_collection": session.query(Notice).filter(Notice.sender_id == sender_id, Notice.receiver_id == receiver_id, Notice.type == type).delete(synchronize_session=False) usr.type = "like" if type == "collection" else "collection" else: usr.type = 'like_collection' session.add(notice) try: session.commit() finally: session.close() return jsonify({ 'user_shell_relationship': { 'id': sender_id, 'token': token, 'shell_id': shell_id }, 'info': generate_return_info(1, '操作成功') })
def save(self): notice = Notice(text=self.cleaned_data['text'], user=self.user, project=self.project) notice.save() return notice
def reply(request, topic_id): try: topic = Topic.objects.get(id=topic_id) # comment --- comment_list = Comment.objects.filter( topic=topic).order_by('created_on') paginator = Paginator(comment_list, NUM_COMMENT_PER_PAGE) page = request.GET.get('page') if page == None: page = paginator.num_pages try: comment_list = paginator.page(page) except PageNotAnInteger: comment_list = paginator.page(1) except EmptyPage: comment_list = paginator.page(paginator.num_pages) # comment --- except Topic.DoesNotExist: raise Http404 if request.method == 'POST': form = ReplyForm(request.POST) if form.is_valid(): last_comment = Comment.objects.filter( author=request.user).order_by('-created_on')[:1] last_comment = last_comment.first() if last_comment and last_comment.content == form.clean( )['content'] and ( (timezone.now() - last_comment.created_on).seconds < 10): messages.error(request, '你是否正在尝试连续提交两次相同的回复?') else: comment = form.save(commit=False) request.user.comment_num += 1 request.user.calculate_au() request.user.save() comment.author = request.user try: topic = Topic.objects.get(id=topic_id) except Topic.DoesNotExist: raise Http404 comment.topic = topic comment.save() # --- 解析@ --- #team_name_pattern = re.compile('(?<=@)(\w+)', re.UNICODE) team_name_pattern = re.compile('(?<=@)([0-9a-zA-Z_.]+)', re.UNICODE) at_name_list = set( re.findall(team_name_pattern, comment.content)) if at_name_list: for at_name in at_name_list: if at_name != comment.author.username and at_name != comment.topic.author.username: try: at_user = User.objects.get(username=at_name) if at_user: notice = Notice(from_user=comment.author, to_user=at_user, topic=comment.topic, content=comment.content) notice.save() except: pass # --- 解析@ --- topic.num_comments += 1 topic.updated_on = timezone.now() topic.last_reply = request.user topic.save() return HttpResponseRedirect( reverse("bbs:topic", args=(topic_id, ))) else: form = ReplyForm() return render( request, "bbs/topic.html", { "node": node, "topic": topic, "form": form, "comment_list": comment_list, 'paginator': paginator })
username = profile['username'] mail = profile['mail'] password = generate_password_hash('123') # Save in database my_user = User(username=username, mail=mail, password=password) db.session.add(my_user) print('Users created') # Make 1000 fake news for num in range(1000): title = fake.sentence() url = fake.uri() user_id = randint(1, 100) # Save in database my_notice = Notice(title=title, url=url, user_id=user_id) db.session.add(my_notice) print('News created') # Make 10000 fake comments for num in range(10000): text = fake.text() notice_id = randint(1, 1000) user_id = randint(1, 100) # Save in database my_comment = Comment(text=text, notice_id=notice_id, user_id=user_id) db.session.add(my_comment) print('Comments created')