Ejemplo n.º 1
0
    def create_question(question, instructor, course, time):
        if not isinstance(time, (int, long)):
            time = 0
        session.add(Question(instructor, course, question, False, time))
        session.commit()

        return render_template('handleQuestion.html',question=question)
Ejemplo n.º 2
0
 def add_list(list):
     for a_id, u_id in list:
         if session.query(Schedule).filter(Schedule.answer_id == a_id,
                 Schedule.user_id == u_id).first() is None:
             session.add(Schedule(a_id, u_id))
     
     session.commit()
Ejemplo n.º 3
0
    def process(self):
        userid = g.lti.get_user_id()

        try:
            answer0 = int(request.values['answerzero'])
            answer1 = int(request.values['answerone'])
            bestanswer = int(request.values['bestanswer'])
        except KeyError:
            return abort(404)
        except ValueError:
            return abort(404)
        
        if answer0 == bestanswer:
            best  = answer0
            other = answer1
        elif answer1 == bestanswer:
            best  = answer1
            other = answer0
        else:
            return abort(404)

        #try:
        session.add(AnswerChoiceModel(userid,best,other))
        session.commit()
        #except:
        #    session.rollback()

        return redirect('/')
Ejemplo n.º 4
0
    def delete_question(qid):
        question = Question.by_id(int(qid))
        if g.lti.is_instructor():
            session.delete(question)
            session.commit()

        return json.dumps({'deleted': g.lti.is_instructor()})
Ejemplo n.º 5
0
 def __init__(self, request):        
     # lele add dummy questions le
     if len(Question.get_all()) == 0:
         print "I MAEK DUMMY SHIZZLE"
         userID = g.lti.get_user_id()
         q1 = Question("1","1","What am I?",True,1000)
         q2 = Question("2","1","Who am I?",True,1000)
         q3 = Question("3","1","Where am I?",True,1000)
         session.add(q1)
         session.add(q2)
         session.add(q3)
         a11 = AnswerModel("einseins",1,userID,0,1000.0)
         a12 = AnswerModel("einszwei",1,1338,  0,1000.0)
         a13 = AnswerModel("einsdrei",1,1339,  0,1000.0)
         a21 = AnswerModel("zweieins",2,userID,0,1000.0)
         a22 = AnswerModel("zweizwei",2,1338,  0,1000.0)
         a23 = AnswerModel("zweidrei",2,1339,  0,1000.0)
         a31 = AnswerModel("dreieins",3,userID,0,1000.0)
         a32 = AnswerModel("dreizwei",3,1338,  0,1000.0)
         a33 = AnswerModel("dreidrei",3,1339,  0,1000.0)
         session.add(a11)
         session.add(a12)
         session.add(a13)
         session.add(a21)
         session.add(a22)
         session.add(a23)
         session.add(a31)
         session.add(a32)
         session.add(a33)
         session.commit()
Ejemplo n.º 6
0
    def edit_question(q_id, question, time):
        """Updates a question with given contents and activation status."""
        if g.lti.is_instructor():
            if question is None:
                escaped_question = None
            else:
                escaped_question = escape(question)

            escaped_time = escape(time)
            q = Question.by_id(q_id)
            q.question = escaped_question
            q.time = int(time)
            activate = q.answerable

            session.add(q)
            session.commit()

            return json.dumps({"id": q_id,
                               "text": escaped_question,
                               "answerable": activate,
                               "time":time,
                               "check": g.lti.is_instructor()})
        else:
            return json.dumps({"id": q_id,
                               "text": question,
                               "answerable": activate,
                               "time": time,
                               "check": g.lti.is_instructor()})
Ejemplo n.º 7
0
 def save(questionID, userID, answerText):
     try:
         ranking = ((session.query(UserModel).filter_by(userid=userID).one().trust - 1000.0) / 4) + 1000.0
     except exc.InvalidRequestError:
         ranking = 1000.0
     session.add(AnswerModel(questionID=questionID, userID=userID, text=answerText, edit=0, ranking=ranking))
     session.commit()
Ejemplo n.º 8
0
    def delete_userquestion(qid):
        '''removes the question with the provided id from the database'''
        question = UserQuestion.by_id(int(qid))
        if g.lti.is_instructor():
            session.delete(question)
            session.commit()

        return json.dumps({'deleted': g.lti.is_instructor()})
Ejemplo n.º 9
0
 def add_tag(name):
     if session.query(Tag.name).filter(Tag.name == name).first() is None:
         tag = Tag(name)
         session.add(tag)
         session.commit()
         return tag.id
     else:
         return False
Ejemplo n.º 10
0
 def create_question(question, instructor, course, active, time, comment, tags, rating):
     '''formats a question for database insertion and inserts it, calls a result screen afterwards'''
     try:
         time = int(time)
     except ValueError:
         time = 0
     session.add(Question(instructor, course, question, active, time, comment, tags, rating))
     session.commit()
Ejemplo n.º 11
0
 def get_list():
     questions = Question.get_filtered()
     for question in questions:
         if question is not None and question.activate_time is not None:
             if question.get_time_left() < 0:
                 question.answerable = False
     session.commit()
     return render_template('question_list.html', questions=questions)
Ejemplo n.º 12
0
 def save(uid,uname):
     user = UserModel.by_user_id(uid)
     if user is None:
         session.add(UserModel(userid=uid,username=uname))
         session.commit()
     elif user.username != uname:
         user.username = uname
         session.commit()
Ejemplo n.º 13
0
 def __init__(self):
     # create a few database items
     for model in session.query(Question):
         break
     else:
         session.add(Question("1","What am I?",True))
         session.add(Question("1","Who am I?",True))
         session.add(Question("1","Where am I?",True))
         session.commit()
Ejemplo n.º 14
0
 def setTrust(uID, trust):
     # set current trust (in usermodel)
     user = session.query(UserModel).filter_by(userid=uID).one()
     user.trust = trust
     # fetch last known history record
     old = UserHistoryModel.get_user_latest_data(uID)
     # create a new trust entry in userhistory
     history = UserHistoryModel(uID, trust, old.answered, old.asked)
     session.add(history)
     session.commit()
Ejemplo n.º 15
0
 def get_list_asked():
    """Retrieves questions asked by the user currently logged in."""
    if g.lti.is_instructor():
        # TODO: pagination, etc..... same goes for get_questions
        session.commit()
        return render_template('question_list.html',
                               questions=session.query(Question).filter_by(user_id=g.lti.get_user_id()  ) )
    else:
        session.commit()
        return render_template('question_list.html',
                               questions=session.query(Question).filter_by(user_id=g.lti.get_user_id()  ) )
Ejemplo n.º 16
0
    def get_list_table(limit,offset):
        (questions, curpage, maxpages, startpage, pagecount) = Question.get_filtered_offset(limit,offset,orderby='created')
        
        for question in questions:
            if question is not None and question.activate_time is not None:
                if question.get_time_left() < 0:         
                    question.answerable = False
        session.commit()

        return render_template('question_list_tbl.html', questions=questions,
                currentpage=curpage,startpage=startpage,pagecount=pagecount,maxpages=maxpages)
Ejemplo n.º 17
0
 def create_question(question, instructor, course, active, time, comment, tags, rating):
     '''Formats a question for database insertion and inserts it, calls a
     result screen afterwards. Returns the id of the added question.'''
     try:
         time = int(time)
     except ValueError:
         time = 0
     q = Question(instructor, course, question, active, time, comment, tags, rating)
     session.add(q)
     session.commit()
     return q.id
Ejemplo n.º 18
0
    def toggle_options(args):
            try:
                type = args['type']
            except KeyError:
                return

            question = Question.by_id(args['id'])
            if question is None:
                return

            if not g.lti.is_instructor() and type != 'Reviewable':
                return

            if question.state == 'Answerable' and (type == 'Inactive' or type == 'Reviewable' or type == 'Archived'):
                AnswerModel.update_q_history(args['id'])

            rv = None
            if type == 'Inactive':
                rv = question.inactive = True
                question.answerable = question.reviewable = question.closed = False
                question.state = 'Inactive'

            if type == 'Answerable':
                rv = question.answerable = True
                question.activate_time = datetime.now()
                question.inactive = question.reviewable = question.closed = False
                question.state = 'Answerable'

            elif type == 'Reviewable':
                if not question.reviewable:
                    Scheduler(args['id'])
                    question.reviewable = True
                rv = question.reviewable
                question.inactive = question.answerable = question.closed = False
                question.state = 'Reviewable'

            elif type == 'Closed':
                rv = question.closed = True
                question.inactive = question.answerable = question.reviewable = False
                question.state = 'Closed'

            elif type == 'comments':
                rv = question.comment = not question.comment

            elif type == 'tags':
                rv = question.tags = not question.tags

            elif type == 'rating':
                rv = question.rating = not question.rating

            session.commit()
            return json.dumps({"toggle": rv, "check": True})
Ejemplo n.º 19
0
    def delete_question(qid):
        '''removes the question with the provided id from the database'''
        question = Question.by_id(int(qid))
        if g.lti.is_instructor():
            session.delete(question)
            #Delete answers
            quid = {"questionID": int(qid)}
            answers = AnswerModel.get_filtered(**quid)
            for x in answers:
                session.delete(x)
            session.commit()

        return json.dumps({'deleted': g.lti.is_instructor()})
Ejemplo n.º 20
0
    def get_list_to_answer():
     """Retrieves questions to be answered by the instructor (all questions )"""
     if g.lti.is_instructor():
         # TODO: pagination, etc..... same goes for get_questions
         session.commit()
         return render_template('answer_student_questions.html',
                                questions=session.query(Question).\
                                    filter(Question.course_id == g.lti.get_course_id() ).\
                                    filter(Question.course_id != g.lti.get_user_id() ))         #Filter questions by instructor

     #Only instructors can answer these questions
     else:
         return render_template('access_restricted.html')
Ejemplo n.º 21
0
def tearDown():
    #close db connection
    session.expunge_all()
    session.commit()
    session.flush()
    Base.metadata.drop_all(engine)

    #restore backup 'production'
    dst = os.getcwd()+directory_separator+"db.sqlite"
    src = os.getcwd()+directory_separator+"db_backup.sqlite"
    if os.path.exists(dst):
        os.remove(dst)
        if os.path.exists(src):
            os.rename(src, dst)
 def calc_new_trust(self):
     print "GET HERE "
     winner    = AnswerModel.get_by_answer_id(self.best_answer_id)
     loser     = AnswerModel.get_by_answer_id(self.other_answer_id)
     winner_h  = UserHistoryModel.get_by_user_id(winner.userID)
     loser_h   = UserHistoryModel.get_by_user_id(loser.userID)
     new_trust = UserModel.newTrust(winner.userID, loser.userID)
     #UserHistoryModel(winner.userID, new_trust[0], winner_h.answered, winner_h.asked)
     #UserHistoryModel(loser.userID, new_trust[1], loser_h.answered, loser_h.asked) 
     session.add(UserHistoryModel(winner.userID, new_trust[0], 17, 22))
     session.commit()
     session.add(UserHistoryModel(loser.userID, new_trust[1], 17, 25))
     session.commit()
     
Ejemplo n.º 23
0
    def availability(args):
        """
        Handles availability via the question_list form
        """
        try:
            type = args['type']
        except KeyError:
            return 
            
        question = Question.by_id(args['id'])
        if question is None:
            return 

        if not g.lti.is_instructor() and type != 'reviewable':
            return
        
        rv = None
        if type == 'answerable':
            rv = question.answerable = not question.answerable
            question.activate_time = datetime.now()

        elif type == 'reviewable':
            if not question.reviewable:
                Scheduler(args['id'])
                question.reviewable = True
            rv = question.reviewable


        elif type == 'archived':
            rv = question.archived = not question.archived
            
        elif type == 'comments':
            rv = question.comment = not question.comment
            
        elif type == 'tags':
            rv = question.tags = not question.tags
            
        elif type == 'rating':
            rv = question.rating = not question.rating
            
        session.commit()
            
        return rv
Ejemplo n.º 24
0
 def save(uid,uname):
     user = UserModel.by_user_id(uid)
     if user is None:
         # add user to UserModel
         tmp = UserModel(userid=uid,username=uname)
         tmp.trust = 1000.0
         session.add(tmp)
         session.commit()
         # add user's first entry to UserHistoryModel
         history = UserHistoryModel(uid, 1000.0, 0, 0)
         session.add(history)
         session.commit()
     elif user.username != uname:
         user.username = uname
         session.commit()
Ejemplo n.º 25
0
 def add_answertag(aid, tid):
     if session.query(AnswerTag).filter(
             AnswerTag.answer_id==aid,
             AnswerTag.tag_id==tid).first() is None:
         session.add(AnswerTag(aid, tid))
         session.commit()
Ejemplo n.º 26
0
 def remove_by_id(cls, id):
     entry = cls.by_id(id)
     if entry == None:
         return
     session.delete(entry)
     session.commit()
Ejemplo n.º 27
0
	def submit_rating(rating):
		session.add(Rating(rating))
		session.commit()
Ejemplo n.º 28
0
 def savereview(questionID, userID, answerText, edit):
     session.add(AnswerModel(questionID=questionID,
                 userID=userID, text=answerText, edit=edit + 1))
     session.commit()
Ejemplo n.º 29
0
 def save(questionID, userID, answerText):
     session.add(AnswerModel(
         questionID=questionID, userID=userID, text=answerText, edit=0))
     session.commit()
Ejemplo n.º 30
0
 def remove(answer_id, tag_id):
     for at in session.query(AnswerTag).filter(
             AnswerTag.answer_id==answer_id,
             AnswerTag.tag_id==tag_id):
         session.delete(at)
         session.commit()