Exemple #1
0
def result():
    "lottery result page handler"

    is_open = (time.time() - app.config['LOTTERY_OPEN_TIME']) >= 0
    if is_open:

        # check if winner already exists from database
        q = db_session.query(Pool).filter(Pool.winner==True)
        winner_exists = db_session.query(q.exists()).scalar()

        if winner_exists:
            return render_template('result.html',
                                   title='Result',
                                   open_lottery=True,
                                   winner=q.one())

        # winner doesn't exist, run lottery algorithm to generate the winner
        pool_size = db_session.query(func.count(Pool.id)).scalar()
        lottery = LittleLottery(pool_size)
        try:
            w = db_session.query(Pool).filter(Pool.id==lottery.draw()).one()
        except NoResultFound as e:
            pass
        else:
            # winner created, now write to db
            w.winner = True
            db_session.commit()
        return render_template('result.html',
                                title='Result',
                                open_lottery=True,
                                winner=w)

    open_time = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(app.config['LOTTERY_OPEN_TIME']))
    return render_template('result.html', title='Result', open_lottery=False, open_time=open_time)
Exemple #2
0
def edit_group():
    getid = request.args.get('group_id')
    groupData = db_session.query(Group).filter(Group.group_id == getid).\
     with_entities(Group.name, Group.power, Group.group_id).first()
    form = EditadminForm()
    if groupData:
        form.group_id.data = groupData.group_id
        form.name.data = groupData.name
        form.powerlist.data = groupData.power

    db_session.close()
    if form.validate_on_submit():
        group_id = request.form.get('group_id')
        name = request.form.get('name')
        powerlist = request.form.get('powerlist')
        group = Group(name=name, power=powerlist)
        db_session.query(Group).filter(Group.group_id == group_id).update({
            Group.name:
            name,
            Group.power:
            powerlist
        })
        db_session.commit()
        db_session.close()

        flash("修改成功,<span id='time'>3</span>秒后自动跳转管理页。")
        return redirect('/manage/edit_group')
    return render_template("edit_group.html",
                           pagename='manage_group',
                           form=form)
def index():

    # Get a random song from the database to start with 
    rand = random.randrange(0, db_session.query(m.Track).count()) 
    track = db_session.query(m.Track)[rand]

    return redirect("/render_template?song_id=%s" % track.song_id)
def examineall_customers():

    getid = request.form.getlist('id')
    examine = request.args.get('examine', 0)

    if len(getid) == 1:
        getid = request.form.get('id')
        try:
            upsort = db_session.query(Users).\
             filter(Users.id == getid).\
             update({Users.verify : examine})
            db_session.commit()
            # 记录日志
            # print upsort.phone
            actions = '%s%s' % ('审核通过客户:', upsort.phone)
            savelog(actions)
        except:
            return jsonify({"state": "数据库错误"})
    else:
        for getid in getid:
            try:
                upsort = db_session.query(Users).\
                 filter(Users.id == getid).\
                 update({Users.verify : examine})
                db_session.commit()
                # 记录日志
                actions = '%s%s' % ('审核通过客户:', upsort.phone)
                savelog(actions)
            except:
                return jsonify({"state": "数据库错误"})

    db_session.close()

    return jsonify({"state": 'ok'})
def upbooks():
    getid = request.form.getlist('id')
    manageid = current_user.id
    if len(getid) == 1:
        bookid = getid[0]
        upstatus = MuGb.query.filter_by(bookid=bookid,
                                        manageid=manageid).first()
        if upstatus:
            upstatus.status = 1
            try:
                db_session.add(upstatus)
                db_session.commit()
            except Exception as e:
                print(e)
                db_session.rollback()
                return jsonify({"state": "数据库错误"})
    else:
        manageid = []
        for x in getid:
            manageid.append(current_user.id)
        for (getid, manageid) in zip(getid, manageid):
            try:
                db_session.query(MuGb).\
                 filter(MuGb.bookid == getid, MuGb.manageid == manageid).\
                 update({MuGb.status : 1})
                db_session.commit()
            except Exception as e:
                print(e)
                db_session.rollback()
                return jsonify({"state": "数据库错误"})
    return jsonify({'state': 'ok'})
Exemple #6
0
def edit_wash():
    getid = request.args.get('id')
    washData = db_session.query(Wash).filter(Wash.id == getid).\
     with_entities(Wash.text, Wash.icon, Wash.id).first()
    form = EditWashForm()
    if washData:
        form.id.data = washData.id
        form.text.data = washData.text
        form.oldicon.data = washData.icon

    db_session.close()
    if form.validate_on_submit():
        id = request.form.get('id')
        text = request.form.get('text')
        icon = request.form.get('icon')
        wash = Wash(text=text, icon=icon)
        db_session.query(Wash).filter(Wash.id == id).update({
            Wash.text: text,
            Wash.icon: icon
        })
        db_session.commit()
        # 记录日志
        actions = ('%s%s%s' % ('修改洗涤说明', ':', id))
        savelog(actions)
        db_session.close()

        flash("修改成功,<span id='time'>3</span>秒后自动跳转管理页。")
        return redirect('/manage/edit_wash')
    return render_template("edit_wash.html",
                           pagename='manage_wash',
                           this='edit',
                           form=form)
def edit_customers():

    this = 'edit'
    tsActive = 'manage_customers'

    getid = request.args.get('id')

    form = EditCustomersForm()

    userData = db_session.query(Users).filter(Users.id == getid).first()

    if form.validate_on_submit():
        id = request.form.get('id')
        password = request.form.get('password')

        # 判断是否修改密码
        if not password.strip():
            return redirect('/manage/manage_customers?verify=0&status=0')
        # 如果修改密码
        else:
            db_session.query(Users).filter(Users.id == id).update(
                {Users.password: password})
            db_session.commit()
            db_session.close()

        flash("修改成功,<span id='time'>3</span>秒后自动跳转管理页。")
        return redirect('%s%s' % ('/manage/edit_customers?id=', id))

    return render_template("edit_customers.html",
                           this=this,
                           pagename=tsActive,
                           userData=userData,
                           form=form)
def give_picid(state,picurl,data,up_date):
	checklist = len(data)
	sorts = []
	for x in range(len(picurl)):
		picx = picurl[x].split(',')
		sortx = []
		for y in range(len(picx)):
			sortx.append(y)
		sorty = ','.join(str(i) for i in sortx)
		sorts.append(sorty)

	colorsid = [] #定义一个颜色id的数组
	for i in range(checklist):
		colorsid.append(data[i].id) #通过for获得新添加颜色的id并添加到数组
	if state == 'update':
		for i in range(len(up_date)):
			colorsid.append(up_date[i].id)
	for (colorsid,picurl,sorts) in zip(colorsid,picurl,sorts): #排列颜色id与图片id的for循环
		sort = sorts.split(',') #拆分排序
		picx = picurl.split(',') #拆分前端提交的每组图片的ID
		for x in range(len(picx)): #拆分后的图片id进行循环得到单个id
			# print colorsid
			# print picx[x]
			db_session.query(Images).\
				filter(Images.id == picx[x]).\
				update(
					{
						Images.picid : colorsid,
						Images.sort : sort[x]
					}
				)
Exemple #9
0
class AddadminForm(FlaskForm):
	group = [(r.group_id, r.name) for r in  db_session.query(Group).filter(Group.power != 0).all()]
	team  = [(r.id, r.title) for r in  db_session.query(Team)]

	login_size = HiddenField('login_size',default=0)
	teamid = HiddenField('teamid')
	username = TextField('用户名',
		validators=[Length(min=4,max=30,message=(u'用户名必须4~30个字符之间'))],
		render_kw={
			"placeholder": "用户名",
			"class": "form-control",
			"onbeforepaste": "clipboardData.setData('text',clipboardData.getData('text').replace(/[\u4e00-\u9fa5]/g,''))",
			"onkeyup":"this.value=this.value.replace(/[\u4e00-\u9fa5]/g,'')",
	})
	password = PasswordField('密码', validators=[Length(min=6,max=16,message=(u'密码必须6~16个字符之间'))], render_kw={"placeholder": "密码","class": "form-control","onkeyup": "KeyUp()"})
	repassword = PasswordField('重复密码', render_kw={"placeholder": "重复密码","class": "form-control","onkeyup": "KeyUp()"})
	status = SelectField('状态', coerce=int, choices = [(0, '正常'), (1, '锁定')],render_kw={"class": "form-control"})
	purview = SelectField('职责', coerce=int, choices = [(0, '组长'), (1, '组员')],render_kw={"class": "form-control"},default=1)
	group_id = SelectField(u'管理组', coerce=int,choices = group, render_kw={"class": "form-control"},default=10)
	title = TextField('职位', validators=[Length(min=2,max=30,message=(u'职位必须2~30个字符之间'))], render_kw={"placeholder": "职位","class": "form-control"})
	name = TextField('联系人', validators=[Length(min=2,max=5,message=(u'联系人必须2~5个字符之间'))], render_kw={"placeholder": "联系人","class": "form-control"})
	phone = TextField('电话', validators=[Length(min=11,max=12,message=(u'电话必须11个字符'))], render_kw={"placeholder": "电话","class": "form-control"})
	mail = TextField('邮件', validators=[Length(min=6, message=(u'邮件地址太短!')),Email(message=(u'您输入的不是一个邮件地址!'))],render_kw={"placeholder": "邮箱","class": "form-control"})
	wechat = TextField('微信', validators=[Length(min=2,max=30,message=(u'微信必须2~30个字符之间'))], render_kw={"placeholder": "微信","class": "form-control"})
	submit = SubmitField('添加',render_kw={"class": "btn btn-primary"})
	teams = SelectField('所属组', coerce=int, choices = team, render_kw={"class": "form-control"})
	db_session.close()
Exemple #10
0
def book_menu(novel_id):
    """小说目录"""
    if request.method == 'GET':
        ybd_chapter = db_session.query(Chapter.id, Chapter.name).filter(and_(Chapter.novel_id == novel_id,
                                                                             Chapter.content_source == 1)).all()

        bqg_chapter = db_session.query(Chapter.id, Chapter.name).filter(and_(Chapter.novel_id == novel_id,
                                                                             Chapter.content_source == 2)).all()

        novel = db_session.query(Novel).filter(Novel.id == novel_id).first()

        return render_template('book_menu.html', ybd_chapter=ybd_chapter, novel=novel, novel_id=novel_id,
                               bqg_chapter=bqg_chapter)

    elif request.method == 'POST':
        data = request.get_json()
        novel_text_path = os.path.join(os.getcwd(), 'uploads/novel_txt')
        if data['update_from'] == 1:
            from backtask.getnovelfromybdu import get_single_novel_text
            novel_name, novel_download_url = db_session.query(Novel.name, Novel.chapter_source_ybd_url).\
                filter(Novel.id == novel_id).first()
            get_single_novel_text(novel_download_url.encode('utf-8'), novel_name, str(novel_id), novel_text_path)
            from backtask.getnovel import update_single_chapter_last_and_next, single_from_text_store_sql
            single_from_text_store_sql(novel_text_path, novel_id)
            update_single_chapter_last_and_next(novel_id, 1)
            return jsonify({"good": "1"})
        elif data['update_from'] == 2:
            from backtask.getnovel import update_single_chapter_infor, update_chapter_content
            url = db_session.query(Novel.chapter_source_bequge_url).filter(Novel.id == novel_id).first()[0]
            update_single_chapter_infor(novel_id, url)
            update_chapter_content(novel_id)
            return jsonify({'good': '1'})
Exemple #11
0
def edit_team():
    getid = request.args.get('id')
    teamData = db_session.query(Team).filter(Team.id == getid).\
     with_entities(Team.title, Team.id).first()
    form = EditTeamForm()
    if teamData:
        form.id.data = teamData.id
        form.title.data = teamData.title

    db_session.close()
    if form.validate_on_submit():
        id = request.form.get('id')
        title = request.form.get('title')
        team = Team(title=title)
        db_session.query(Team).filter(Team.id == id).update(
            {Team.title: title})
        db_session.commit()
        # 记录日志
        actions = ('%s%s%s' % ('修改产品组', ':', title))
        savelog(actions)
        db_session.close()

        flash("修改成功,<span id='time'>3</span>秒后自动跳转管理页。")
        return redirect('/manage/edit_team')
    return render_template("edit_team.html",
                           pagename='manage_team',
                           this='edit',
                           form=form)
Exemple #12
0
def index():

    # Get a random song from the database to start with
    rand = random.randrange(0, db_session.query(m.Track).count())
    track = db_session.query(m.Track)[rand]

    return redirect("/render_template?song_id=%s" % track.song_id)
Exemple #13
0
def register():
    """注册用户"""
    if request.method == 'GET':
        return render_template('register.html', error_str='')
    elif request.method == 'POST':
        email = request.form['email']
        password = request.form['password']
        repassword = request.form['repassword']
        nickname = request.form['nickname']
        validate_code = request.form['validate']
        headpic = request.form['head_pic_input']
        user_id = db_session.query(User.id).filter(User.email == email).first()
        nickname_id = db_session.query(User.id).filter(User.nickname == nickname).first()

        if password != repassword:
            return render_template('register.html', error_str=u'密码输入前后不一致')
        elif len(email) < 6 or len(email) > 25:
            return render_template('register.html', error_str=u'用户名在6到25位之间')
        elif user_id:
            return render_template('register.html', error_str=u'用户名已经存在')
        elif nickname_id:
            return render_template('register.html', error_str=u'昵称已经存在')
        elif validate_code != session['validate']:
            return render_template('register.html', error_str=u'验证码错误')
        else:
            new_user = User(email=email, password=password, nickname=nickname, headpic=headpic)
            db_session.add(new_user)
            db_session.commit()
            session['id'] = new_user.id
            session['email'] = new_user.email
            session['nickname'] = new_user.nickname
            session['head_pic'] = new_user.headpic
            session['is_admin'] = new_user.is_admin
            return redirect(request.args['backurl'])
Exemple #14
0
def del_news():
    if request.method == "POST":
        getid = request.form.getlist('id')
        if len(getid) == 1:
            getid = request.form.get('id')
            delg = db_session.query(News).filter(News.id == getid).first()
            try:
                db_session.delete(delg)
                db_session.commit()
                db_session.close()
            except:
                return jsonify({"state": "数据库错误"})
        else:
            delg = db_session.query(News).filter(News.id.in_((getid))).all()
            try:
                [db_session.delete(n) for n in delg]
                db_session.commit()
                db_session.close()
            except:
                return jsonify({"state": "数据库错误"})

    else:
        getid = request.args.get('id')
        delg = db_session.query(News).filter(News.id == getid).first()
        try:
            db_session.delete(delg)
            db_session.commit()
            db_session.close()
        except:
            return jsonify({"state": "数据库错误"})

    return jsonify({"state": 'ok'})
def register():
  """ this method writes new unique user information into the users table in the database. then 
  creates a new session and directs them to the current game."""
  form = forms.RegForm()
# if not form. is where the magic happends in flask-wtforms 
  if not form.validate_on_submit():
    print form.errors
    return render_template("signup.html", form=form)
 
  name = form.name.data
  email = form.email.data
  password = form.password.data
  latitude = float(form.lat.data)
  longitude = float(form.long.data)
# from here to the comment above this is flask-wtf library. http://flask.pocoo.org/docs/patterns/wtforms/ to read more about this
  existing = db_session.query(User).filter_by(email=email).first()
  print existing 
  if existing: 
    flash ('Email is already in use please try again')
    return redirect(url_for('display_signup'))
  else: 
    new_user = User(email=email, password=password, name=name, longitude=longitude, latitude=latitude)
    db_session.add(new_user)
    db_session.commit()
    db_session.refresh(new_user)
    user = db_session.query(User).filter_by(email=email, password=password).one()
    session['user_id'] = user.id
  return redirect(url_for('current_game'))
Exemple #16
0
def get_pattern():

    # Get the song title and artist name from the web form
    title = request.args.get("title").lower()
    artist_name = request.args.get("artist_name").lower()
    
    # If nothing entered into form
    if not artist_name and not title:

        return redirect("/")

    # If only title entered
    elif not artist_name:
        track = db_session.query(m.Track).filter_by(title=title).first()


    # If only artist name entered
    elif not title:
        track = db_session.query(m.Track).filter_by(artist_name=artist_name).first()

    # If both artist and title entered
    else:
        track = db_session.query(m.Track).filter_by(artist_name=artist_name).filter_by(title=title).first()

    if track:

        return redirect("/render_template?song_id=%s" % track.song_id)
    
    # If not in database, call Echo Nest
    else:

        song_data = algorithm(artist_name, title)
        
        # HTML prints message to screen saying sorry, no go
        if not song_data:

            return render_template("index.html", track=None, patterns=None, sections=None)


        # Use song_id to see if song is already in the database
        # (This avoids problems if user doesn't use accents or gives a partial entry [e.g., skips "the"])
        song_id = song_data["song_id"]

        track = db_session.query(m.Track).filter_by(song_id=song_id).first()

        # If song id is in the database
        if track:
            return redirect("/render_template?song_id=%s" % track.song_id)

        # If song id is not in the database
        else:

            # Add it to the database
            add_song_to_db(db_session, song_data)

            # Get it from the database (using song id)
            track = db_session.query(m.Track).filter_by(song_id=song_id).first()
            
            return redirect("/render_template?song_id=%s" % track.song_id)
def save_company():
    getid = request.form.get('id')
    getcontent = cgi.escape(request.form.get('editor'))

    db_session.query(Company).filter(Company.id == getid).update(
        {Company.content: getcontent})
    db_session.commit()
    db_session.close()
    return redirect('/manage/company?id=' + getid)
Exemple #18
0
def search_admin():
	username = request.args.get('username')
	if current_user.teamid == 0:
		userlist = db_session.query(Manage).filter(Manage.username.like("%"+username+"%")).all()
	else:
		userlist = db_session.query(Manage).filter(Manage.username.like("%"+username+"%"), Manage.teamid == current_user.teamid).all()
	return render_template(
		"manage_user.html", 
		pagename='manage_user', 
		userlist=userlist)
	db_session.close()
Exemple #19
0
def search_collection():
    query = request.form['query']
    in_collection = []
    card_from_cards_table = db_session.query(Card).filter(Card.name.ilike("%" + query + "%"))
    for this_card in card_from_cards_table:
        my_id = this_card.id
        card_in_collection = db_session.query(Collection_item).filter_by(cards_id=my_id).first()
        in_collection.append(card_in_collection)
    print in_collection
    """can search on card title, spell type, set, rarity""" 
    #will go to search
    return render_template("search_results.html", search_collection=in_collection)
def edit_contact():
    this = 'edit'
    getid = request.args.get('id')
    contactData = db_session.query(ContactUs).filter(ContactUs.id == getid).\
     with_entities(ContactUs.id, ContactUs.department, ContactUs.title, ContactUs.name, ContactUs.phone, ContactUs.mail, ContactUs.wechat, ContactUs.sort).first()

    form = EditusForm()
    if contactData:
        form.id.data = contactData.id
        form.department.data = contactData.department
        form.title.data = contactData.title
        form.name.data = contactData.name
        form.phone.data = contactData.phone
        form.mail.data = contactData.mail
        form.wechat.data = contactData.wechat
        form.sort.data = contactData.sort

    db_session.close()
    if form.validate_on_submit():
        id = request.form.get('id')
        department = request.form.get('department')
        title = request.form.get('title')
        name = request.form.get('name')
        phone = request.form.get('phone')
        mail = request.form.get('mail')
        wechat = request.form.get('wechat')
        sort = request.form.get('sort')

        db_session.query(ContactUs).filter(ContactUs.id == id).update({
            ContactUs.department:
            department,
            ContactUs.title:
            title,
            ContactUs.name:
            name,
            ContactUs.phone:
            phone,
            ContactUs.mail:
            mail,
            ContactUs.wechat:
            wechat,
            ContactUs.sort:
            sort
        })
        db_session.commit()
        db_session.close()

        flash("修改成功,<span id='time'>3</span>秒后自动跳转管理页。")
        return redirect('/manage/edit_contact')
    return render_template("edit_contact.html",
                           pagename='contact_us',
                           this=this,
                           form=form)
Exemple #21
0
def manage_user():
	status = request.args.get('status',0)
	if current_user.teamid == 0:
		userlist = db_session.query(Manage).filter(Manage.status == status).all()
	else:
		userlist = db_session.query(Manage).filter(Manage.status == status, Manage.teamid == current_user.teamid).all()
	
	return render_template(
		"manage_user.html", 
		pagename='manage_user', 
		userlist=userlist)
	db_session.close()
def chose_pro():
    proname = request.args.get('proname')
    if proname == None or proname == '':
        proname = ''

    lim = int(10)  #get到每页显示数量
    page = int(request.args.get('page', 1))  #get到页数

    newcont = db_session.query(func.count(Product.proid)).\
     filter(Product.proname.like("%"+proname+"%"), Product.display == 0).scalar() #计算数据总数

    page_cont = int(math.ceil(round(float(newcont) / lim, 2)))

    if page == 1:
        page_nb = 0  #如果第一页则从第0条数据开始调用
        page_show = int(lim + page_nb)  #调用数量的结尾数
    else:
        page_nb = int((lim * (page - 1)))  #否则用显示数量乘以当前页数减去1 得到开始数
        page_show = int(lim + page_nb)  #调用数量的结尾数

    page_size = []
    for i in range(page_cont):
        page_size.append(i + 1)

    previous = page - 1
    if previous == 0:
        previous = 0
    nextp = page + 1
    if nextp == page_cont:
        nextp = page_cont

    if newcont >= lim:
        productlist = db_session.query(Product).\
         filter(Product.proname.like("%"+proname+"%"), Product.display == 0).\
         group_by(Product.proid).limit(lim)[page_nb:page_show]
    else:
        page_show = int(newcont + ((newcont * page) - 1))
        # print newcont,page_show,page
        productlist = db_session.query(Product).\
         filter(Product.proname.like("%"+proname+"%"), Product.display == 0).\
         group_by(Product.proid).limit(lim)[0:page_show]

    return render_template("chose_product.html",
                           productlist=productlist,
                           page=page_size,
                           previous=previous,
                           nextp=nextp,
                           page_cont=page_cont,
                           proname=proname,
                           newcont=newcont)
Exemple #23
0
def book_content(chapter_id):
    """小说章节内容"""
    if request.method == 'GET':
        chapter = db_session.query(Chapter).filter(Chapter.id == chapter_id).first()
        novel_id = chapter.novel_id
        comments = db_session.query(Comment).filter(and_(Comment.from_novel_id == novel_id, Comment.is_host == 1)).order_by(Comment.group_id).all()
        return render_template('book_content.html', chapter=chapter, comments=comments)
    else:
        data = request.get_json()
        chapter_content = data['content'].replace(u'<br>', u'\n')
        chapter = db_session.query(Chapter).filter(Chapter.id == chapter_id).one()
        chapter.content = chapter_content
        db_session.commit()
        return jsonify(code=1)
Exemple #24
0
def news():

	page = int(request.args.get('pageNo',1)) #get到页数
	getpid = request.args.get('pid',1) #get到页数

	lim = int(8) #get到每页显示数量

	newcont = db_session.query(func.count(News.id)).\
				filter(News.pid == getpid, News.display ==0).scalar() #计算数据总数
	if newcont == None:
		newcont = 0

	if page == 1:
		page_nb = 0 #如果第一页则从第0条数据开始调用
		page_show = int(lim + page_nb) #调用数量的结尾数
	else:
		page_nb = int((lim * (page - 1))) #否则用显示数量乘以当前页数减去1 得到开始数
		page_show = int(lim + page_nb) #调用数量的结尾数


	newslist = News.query.\
				filter_by(pid = getpid, display = 0).\
				order_by(News.addtime).limit(lim)[page_nb:page_show]

	return jsonify({'news': [New.to_newlist() for New in newslist]})
def del_contact():
    getid = int(request.args.get('id'))
    delg = db_session.query(ContactUs).filter(ContactUs.id == getid).first()
    db_session.delete(delg)
    db_session.commit()
    db_session.close()
    return jsonify({"state": "ok"})
Exemple #26
0
def add_or_update_rating():
    movie_id = request.form.get("movie_id")
    movie_id = int(movie_id) # ERROR: ValueError: invalid literal for int() with base 10: ''
    print "MOVIE ID", movie_id, type(movie_id)
    rating_num = request.form.get("rating")
    user_id = browser_session["user"]

    if rating_num < 1 or rating_num > 5:
        flash("Rating must be a whole number from 1 to 5.")
        return redirect("/movie/%d" % movie_id)

    rating_in_db = db_session.query(model.Rating).filter(model.Rating.movie_id==movie_id).filter(model.Rating.user_id==user_id).all()

    if rating_in_db == []:
        rating = model.Rating(user_id=user_id, movie_id=movie_id, rating=rating_num)
        print rating.rating
        db_session.add(rating)
    else:
        rating = rating_in_db[0]
        rating.rating = rating_num
        print rating.rating
        db_session.add(rating)

    db_session.commit()

    flash("Your rating has been saved!")
    return redirect("/movie/%d" % rating.movie_id)
def hasProduct():
	getClassid = request.args.get('classid')
	procont = db_session.query(func.count(Product.proid)).filter( Product.pid == getClassid).scalar()
	if procont != 0:
		return jsonify({"state":'haspro'})
	else:
		return jsonify({"state":'ok'})
Exemple #28
0
def register():
    "register form handler"

    # do not let users register anymore if lottery result is open already
    is_open = (time.time() - app.config['LOTTERY_OPEN_TIME']) >= 0
    if is_open:
        return redirect(url_for('index'))

    form = RegistrationForm() 
    if form.validate_on_submit():
        # verify if the same data already exists in database
        participant = db_session.query(Pool).filter(or_(Pool.name==form.name.data, Pool.email==form.email.data)).first()
        if participant:
            flash('The name or email you gave already exists; please use another name or email.')
            return redirect(url_for('register'))

        # do a db write
        player = Pool(name=form.name.data, email=form.email.data)
        db_session.add(player)
        db_session.commit()

        # store user session
        session['name'] = form.name.data

        # redirect to confirmation page
        return redirect(url_for('confirmation'))
    return render_template('register.html', title='Registration', form=form)
Exemple #29
0
def clean_str():
    db_imgs = []    
    stored_imgs = db_session.query(Card.hashId).select_from(Card).all()
    for image in stored_imgs:
        new_string = str(image[0])
        db_imgs.append(new_string)
    return db_imgs
Exemple #30
0
def get_cart_cont():
    userid = g.current_user.id

    cartcont = db_session.query(func.count(UserCart.userid)).\
       filter(UserCart.userid == userid).scalar() #计算数据总数

    return jsonify({'cartcont': cartcont})
def del_colors():
	getid = request.args.get('id')

	delcolors = db_session.query(ProColor).filter(ProColor.id == getid).first()
	colorpics = delcolors.colorpic.all()

	for picurl in colorpics:
		imgurl = picurl.picurl #获得图片物理地址
		imgurl = actros_split(imgurl)
		delImage(imgurl) #删除物理图片
	try:
		[db_session.delete(n) for n in colorpics]
		db_session.commit()
	except Exception as e:
		print (e)
		db_session.rollback()
		return jsonify({"state":"数据库错误"})

	try:
		db_session.delete(delcolors)
		db_session.commit()
	except Exception as e:
		print (e)
		db_session.rollback()
		return jsonify({"state":"数据库错误"})

	db_session.close()
	return jsonify({"state":'ok'})
def add_silder():
    this = 'add'
    form = AddsilderForm()
    if form.validate_on_submit():
        title = request.form.get('title')
        url = request.form.get('url')
        picid = request.form.get('picid')
        sort = request.form.get('sort')

        silder = Silder(title=title, url=url, picid=picid, sort=sort)

        silder_check = db_session.query(Silder).order_by(Silder.id)

        if len(title):
            try:
                db_session.add(silder)
                db_session.commit()
                db_session.close()
            except:
                flash("数据库错误!")
                return redirect('/manage/add_silder')

            flash("添加成功,<span id='time'>3</span>秒后自动跳转管理页。")
            return redirect('/manage/add_silder')
    return render_template("edit_silder.html",
                           pagename='silder',
                           this=this,
                           form=form)
Exemple #33
0
def comment():
    if request.method == 'POST':
        commentdata = request.get_json()
        post_user_id = int(commentdata['post_user_id'])

        #发表帖子
        if commentdata['is_host']:
            max_group_id = db_session.query(func.max(Comment.group_id)).filter(Comment.from_novel_id == int(commentdata['novel_id'])).first()
            if max_group_id is None:
                group_id = 1
            else:
                group_id = int(max_group_id[0]) + 1

            new_comment = Comment(from_user_id=post_user_id, from_novel_id=int(commentdata["novel_id"]), is_host=True,
                                  group_id=group_id, content=commentdata["comment"])

            db_session.add(new_comment)
            db_session.flush()
            comment_id = new_comment.id
            db_session.commit()
            return jsonify(code=1, comment_id=comment_id, group_id=group_id)

        #回复帖子
        else:
            new_comment = Comment(from_user_id=post_user_id, from_novel_id=int(commentdata['novel_id']), to_user_id=int(commentdata['to_user_id']),
                                  is_host=False, group_id=int(commentdata['group_id']), content=commentdata['comment'])

            db_session.add(new_comment)
            db_session.flush()
            comment_id = new_comment.id
            to_nickname = new_comment.to_user.nickname
            to_headpic = new_comment.to_user.headpic
            db_session.commit()

            return jsonify(code=1, comment_id=comment_id, to_nickname=to_nickname, to_headpic=to_headpic)
Exemple #34
0
def del_admin():
	getid = int(request.args.get('id'))
	delg = db_session.query(Manage).filter(Manage.id == getid).first();
	db_session.delete(delg)
	db_session.commit()
	db_session.close()
	return jsonify({"state":"ok"})
Exemple #35
0
def add_team():
    form = AddTeamForm()
    if form.validate_on_submit():
        title = request.form.get('title')
        team = Team(title=title, addtime=datetime.datetime.now())
        team_check = db_session.query(Team).filter(Team.title == title).first()
        if team_check:
            flash('产品组已存在')
            return redirect('/manage/add_team')
        if len(title):
            try:
                db_session.add(team)
                db_session.commit()
                # 记录日志
                actions = ('%s%s%s' % ('增加产品组', ':', title))
                savelog(actions)
                db_session.close()
            except:
                flash("数据库错误!")
                return redirect('/manage/add_team')

            flash("添加成功,<span id='time'>3</span>秒后自动跳转管理页。")
            return redirect('/manage/add_team')
    return render_template("edit_team.html",
                           pagename='manage_team',
                           this='add',
                           form=form)
Exemple #36
0
def ilikelist():
    userid = g.current_user.id

    page = int(request.args.get('pageNo', 1))  #get到页数

    lim = int(6)  #get到每页显示数量

    newcont = db_session.query(func.count(UserLike.user_id)).\
       filter(UserLike.user_id == userid).scalar() #计算数据总数
    if newcont == None:
        newcont = 0

    if page == 1:
        page_nb = 0  #如果第一页则从第0条数据开始调用
        page_show = int(lim + page_nb)  #调用数量的结尾数
    else:
        page_nb = int((lim * (page - 1)))  #否则用显示数量乘以当前页数减去1 得到开始数
        page_show = int(lim + page_nb)  #调用数量的结尾数


    likelist = UserLike.query.\
       filter_by(user_id = userid).\
       order_by(UserLike.add_time).limit(lim)[page_nb:page_show]

    return jsonify({'likelist': [LikeList.to_list() for LikeList in likelist]})
Exemple #37
0
def add_group():
    form = AddadminForm()
    if form.validate_on_submit():
        name = request.form.get('name')
        powerlist = request.form.get('powerlist')
        group = Group(name=name,
                      power=powerlist,
                      addtime=datetime.datetime.now())
        group_check = db_session.query(Group).filter(
            Group.name == name).first()
        if group_check:
            flash('用户组已存在')
            return redirect('/manage/add_group')
        if len(name) and len(powerlist):
            try:
                db_session.add(group)
                db_session.commit()
                db_session.close()
            except:
                flash("数据库错误!")
                return redirect('/manage/add_group')

            flash("添加成功,<span id='time'>3</span>秒后自动跳转管理页。")
            return redirect('/manage/add_group')
    return render_template("add_group.html",
                           pagename='manage_group',
                           form=form)
Exemple #38
0
def del_group():
    getid = int(request.args.get('group_id'))
    delg = db_session.query(Group).filter(Group.group_id == getid).first()
    db_session.delete(delg)
    db_session.commit()
    db_session.close()
    return jsonify({"state": "ok"})
Exemple #39
0
def add_or_update_rating():
    movie_id = request.form.get("movie_id")
    rating_num = request.form.get("rating")
    user_id = browser_session["user"]

    if type(rating_num) != int or rating_num < 1 or rating_num > 5:
        flash("Rating must be a whole number from 1 to 5.")
        return redirect("/movie/%d" % int(movie_id))

    rating_in_db = db_session.query(
        model.Rating).filter(model.Rating.movie_id == movie_id).filter(
            model.Rating.user_id == user_id).all()

    if rating_in_db == []:
        rating = model.Rating(user_id=user_id,
                              movie_id=movie_id,
                              rating=rating_num)
        print rating.rating
        db_session.add(rating)
    else:
        rating = rating_in_db[0]
        rating.rating = rating_num
        print rating.rating
        db_session.add(rating)

    db_session.commit()

    flash("Your rating has been saved!")
    return redirect("/movie/%d" % rating.movie_id)
Exemple #40
0
def getstProduct():
	topid = int(request.args.get('topid'))
	page = int(request.args.get('pageNo',1)) #get到页数
	if topid == None:
		abort(404)

	lim = int(6) #get到每页显示数量

	newcont = db_session.query(func.count(Product.proid)).\
				filter(Product.new_p == topid, Product.display == 0).scalar() #计算数据总数
	if newcont == None:
		newcont = 0

	if page == 1:
		page_nb = 0 #如果第一页则从第0条数据开始调用
		page_show = int(lim + page_nb) #调用数量的结尾数
	else:
		page_nb = int((lim * (page - 1))) #否则用显示数量乘以当前页数减去1 得到开始数
		page_show = int(lim + page_nb) #调用数量的结尾数
	

	productlist = Product.query.\
				filter_by(new_p = topid).\
				filter_by(display = 0).\
				order_by(Product.add_time).limit(lim)[page_nb:page_show]

	return jsonify({'productlist': [Productls.to_list() for Productls in productlist]})
Exemple #41
0
def view_movie(movie_id): 
    movie = db_session.query(model.Movie).filter_by(id = movie_id).one()
    user_id = browser_session["user"]
    # unresolved issue: what happens if user isn't logged in?

    if browser_session["user"]: # CAN I DO THIS? --> use .get
        user_rating = db_session.query(model.Rating).filter(model.Rating.movie_id == movie_id).filter(model.Rating.user_id == user_id).first()
        print user_rating

        user = db_session.query(model.User).get(user_id)

        if not user_rating and len(user.ratings) > 0:
            predicted_rating = user.predict_rating(movie_id)
        else:
            predicted_rating = None

    return render_template("movie.html", movie = movie, user_rating = user_rating, predicted_rating = predicted_rating)
Exemple #42
0
def reply_comment():
    if request.method == 'POST':
        replydata = request.get_json()
        group_id = replydata['group_id']

        comments = db_session.query(Comment.id, Comment.from_user.nickname, Comment.from_user.headpic,
                                    Comment.to_user.nickname, Comment.to_user.headpic).filter(and_(Comment.group_id == group_id, Comment.is_host != 1)).all()
        print comments
        return jsonify(comments=comments)
Exemple #43
0
def novel_search():
    if request.method == 'POST':
        search_items = db_session.query(Novel).filter(or_(Novel.name.like('%'+
                                                                          request.form['search'].encode('utf-8')+'%'),
                                                          Novel.author.like('%'+request.form['search'].encode('utf-8')+'%'))).all()

        return render_template('search.html', search_items=search_items)
    elif request.method == 'GET':
        return render_template('search.html', search_items=None)
Exemple #44
0
def get_details(user_id):
    # ratings = db_session.query(Rating).filter_by(user_id=user, movie_id=id).all()

    #This returns all rating objects from a user
    user_ratings = db_session.query(Rating).filter_by(user_id=user_id).all()
    # for rating in user_ratings:
    #     #all rating objects have a movie object in them, with attributes, as well as user objects
    #     print rating.rating, rating.user.id, rating.movie.name
    # return "Boo"
    return render_template("user_details.html", user_ratings= user_ratings, user_id=user_id)
def authenticate():
  """this method checks to see if the user is in the database and creates a session 
  for the user and directs them to their current game else it will flash an error"""

  email = request.form['email']
  password = request.form ['password']
  try:
    user = db_session.query(User).filter_by(email=email, password=password).one() 
    session['user_id']=user.id
    return redirect(url_for("current_game"))
  except: 
    flash('Invalid email or password', 'error')
    return redirect(url_for("display_login"))
Exemple #46
0
def login_validation():
    email = request.form.get("email")
    password = request.form.get("password")

    # TODO: Consider what happens if there is more than one user with that email address
    user = db_session.query(model.User).filter_by(email=email).first()
    if user.password == password:
        browser_session["user"] = user.id
        print browser_session
        return render_template("welcome.html", occupation=user.occupation)
    else:
        flash("Invalid password.")
        return redirect("/login")
def create_games(): 
  """this method will write to the game table.""" 
  game_title = request.form['game_title']
  game_description = request.form['game_description'] 
  existing = db_session.query(Game).filter_by(game_title = game_title).first()
  if existing: 
    flash ('This game title is already in use please try again for a unique game title.')
    return redirect(url_for('display_make_game'))
  else:
    new_game = Game(game_title=game_title, game_description=game_description)
    db_session.add(new_game)
    db_session.commit()
    db_session.refresh(new_game)
    game_id = new_game.id
  return redirect(url_for('display_make_challenge', game_id=game_id))
Exemple #48
0
def render():

    form = AddSnowflake()

    song_id=request.args.get('song_id')

    track = db_session.query(m.Track).filter_by(song_id=song_id).first()

    patterns = track.patterns
    json_patterns = json.loads(patterns)

    sections = track.sections
    json_sections = json.loads(sections) 

    return render_template("index.html", track=track, patterns=json_patterns, sections=json_sections, form=form)
Exemple #49
0
def login():
    print session
    email = request.form['email']
    password = request.form['password']
    query = db_session.query(User)
    user = query.filter_by(email=email).first()
    print user

#if user not found, does db return None?
    if user == None:
        flash("You are not in the database.")
    elif user.password != password:
        flash("Password incorrect. Unable to log in.")
    else:
        #add customer to cookie session, which is a dictionary
        session["customer"] = user.id
        flash("You've successfully logged in.")
    return redirect("/")
Exemple #50
0
def update_collection():
    """can add to collection with card title""" 
    while True:
        try: 
            card_name = request.form['name']

            # checking to see if card is real card from Card class and getting the card
            card_from_table = db_session.query(Card).filter_by(name=card_name).one()
            col_itm_card = Collection_item(cards_id = card_from_table.id)
            db_session.add(col_itm_card)
            db_session.commit()
            db_session.refresh(col_itm_card)
            flash("you've successfully added a card to your collection")
            return redirect ("/update")
        
        except sqlalchemy.orm.exc.NoResultFound:
            flash("Update countered! Try again")
            return redirect("/update")
Exemple #51
0
def book_infor(novel_id):
    novel = db_session.query(Novel).filter(Novel.id == novel_id).one()
    if request.method == 'GET':
        return render_template('book_infor.html', novel=novel)
    elif request.method == 'POST':
        novel.name = request.form['novel_name']
        novel.author = request.form['novel_author']
        novel.last_update = request.form['novel_last_update']
        novel.type = request.form['novel_type']
        novel.image = request.form['novel_image']
        novel.description = request.form['novel_description']
        novel.recommend = int(request.form['novel_recommend'])
        novel.source_url = request.form['novel_source_url']
        novel.chapter_source_bequge_url = request.form['chapter_source_bequge_url']
        novel.chapter_source_ybd_url = request.form['chapter_source_ybd_url']

        db_session.flush()
        db_session.commit()
        return redirect(request.headers['referer'])
Exemple #52
0
def login():
    if request.method == 'POST':
        email = request.form['email']
        password = request.form['password']
        user = db_session.query(User).filter(User.email == email).first()
        if user:
            if password == user.password:
                session['id'] = user.id
                session['email'] = user.email
                session['nickname'] = user.nickname
                session['head_pic'] = user.headpic
                session['is_admin'] = user.is_admin
                #1成功,2密码错误,3用户名不存在
                session.pop('error', None)
                return redirect(request.headers['referer'])
            else:
                session['error'] = u'密码错误'
                return redirect(request.headers['referer'])
        else:
            session['error'] = u'用户名不存在'
            return redirect(request.headers['referer'])
Exemple #53
0
def ham_dist(hashbin, db_imgs):
    poss_cards = [] # TO DO append the possible cards
    for image in db_imgs:
        diffs = 0
        for ch1, ch2 in zip(image, hashbin):
            if ch1 != ch2:
                diffs += 1
        if diffs <= 10: 
            poss_cards.append(image)
    print poss_cards
    # remove the "None"s from the list
    matches = filter(lambda a: a != 'None', poss_cards)
    # get the card name associated with each hash   
    match_name = []
    n = 0
    for match in matches:
        your_card = db_session.query(Card).filter_by(hashId = str(matches[n])).all()[0].name
        match_name.append(your_card)
        n += 1
    print len(match_name)
    print match_name
    return match_name
Exemple #54
0
def user(user_id):
    if request.method == 'GET':
        user = db_session.query(User).filter(User.id == user_id).first()
        return render_template('user.html', user=user)
    else:
        return jsonify(code=1)
Exemple #55
0
def index():
    if request.method == 'GET':
        entries = db_session.query(Novel).limit(100)
        return render_template('index.html', entries=entries)
def select_game():
  """This method will query the database for all the games avaliable to play"""
  games = db_session.query(Game).all() 
  return render_template('select_games.html', games=games)
def display_status():
  """ this method will display the all the games the user is currently playing and which 
  one is active. The user should be able to toggle between the other games to switch their 
  current active game."""
  status = db_session.query(Session).all()
  return render_template('status.html', status=status)
#!/usr/bin/env python

import model.db_session
from model.interview import Interview
from model.interviewer import Interviewer
from model.log_event import Log
from model.db_session import DB_Session_Factory
from api.http_response_builder.sms.handle_score_sms import Handle_Score_SMS_HTTP_Response_Builder
from sqlalchemy import func
import json

db_session = DB_Session_Factory.get_db_session()
db_session.connection(None).execute("SET @TRIGGERS_DISABLED = TRUE;")
for interview in db_session.query(Interview).yield_per(5):
    interviewer_phone_number = db_session.query(Interviewer).get(interview.interviewer_email).phone_number
    print ("Looking to fix interview " + str(interview.id))
    print ("Interviewer phone #: " + interviewer_phone_number)
    for log_row in db_session.query(Log).filter(func.date(interview.end_time) == func.date(Log.time), Log.time > interview.end_time, Log.event_name == 'INCOMING_SMS', Log.phone_number == interviewer_phone_number):
        if interview.technical_score is not None and interview.technical_score_ts is None:
            msg_body = json.loads(log_row.data)['Body']
            if isinstance(msg_body, basestring):
                msg_body = [msg_body]
            msg_body = msg_body[0]
            print ("Msg <" + str(log_row.id) + ">: " + msg_body)
            msg_score = Handle_Score_SMS_HTTP_Response_Builder.parse_score(msg_body)
            if msg_score is not None:
                if msg_score != interview.technical_score:
                    raise Exception('Technical scores in the interview and log tables do not match for interview_id ' + str(interview.id) + ". Interview table score: " + str(interview.technical_score) + ". Log table score: " + str(msg_score))
                interview.technical_score_ts = log_row.time
                print "Fixing technical ts for interview_id: " + str(interview.id)
                db_session.commit()