Ejemplo n.º 1
0
def editQuestionDescription(quesID):
    form = QuestionForm()
    q = QuestionMethods(quesID)
    if request.method == 'POST':
        q.editQuestion(form.short_description.data, form.long_description.data)
        return redirect(url_for('viewQuestion', quesID=quesID))
    ques = q.getQuestion()
    '''if request.method == 'GET':
Ejemplo n.º 2
0
def viewTagQuestion(tag):
    quesID = TagQuestion(tag)
    l = []
    for q in quesID.getQuestions():
        qq = QuestionMethods(q)
        l.append(qq.getQuestion())
    return render_template('tag.html',
                           title='HoverSpace | Tag Questions',
                           tags=tag,
                           result=l)
Ejemplo n.º 3
0
    def post_answer(self):
        ansID = ANSWERS_COLLECTION.insert_one({
                    'postedBy': self.postedBy, 'quesID': self.quesID,
                    'ansText': self.ansText, 'timestamp': self.timestamp,
                    'quesID': self.quesID, 'commentID': [], 'votes': 0,
                    'flaggedBy': [], 'flag': 'False'}).inserted_id

        usr = User(self.postedBy)
        usr.update_answers(str(ansID))
        ques = QuestionMethods(self.quesID)
        ques.insert_answers(str(ansID))
        return ansID
Ejemplo n.º 4
0
def viewQuestion(quesID):
    form = AnswerForm()
    if request.method == 'POST':
        username = current_user.get_id()
        ans_obj = Answers(username, quesID, form.ans_text.data)
        ansID = ans_obj.post_answer()

    ques_obj = QuestionMethods(quesID)
    ques = ques_obj.getQuestion()
    ansmet_obj = AnswerMethods(quesID)
    ans = ansmet_obj.get_answers(quesID)
    return render_template('question.html',
                           question=ques,
                           answers=ans,
                           form=form)
Ejemplo n.º 5
0
def updateVotes(quesID):
    rd = (request.data).decode('utf-8')
    data = json.loads(rd)
    voteType = data['voteType']
    print(voteType)

    usr = User(current_user.get_id())
    status = usr.voteQues(quesID, voteType)
    print(status)

    ques_obj = QuestionMethods(quesID)
    votesCount = ques_obj.updateVotes(status['votesChange'])

    postedBy = (ques_obj.getQuestion())['postedBy']
    usr = User(postedBy)
    usr.update_karma(status['votesChange'])
    print(status['type'], votesCount)
    return json.dumps({'type': status['type'], 'count': votesCount})
Ejemplo n.º 6
0
def home():
    form = SearchForm()
    if request.method == "POST":
        l = []
        for selected in srch.search(form.srch_term.data):
            q = QuestionMethods(selected)
            l.append(q.getQuestion())
        return render_template('search.html',
                               title='HoverSpace | Search',
                               result=l)
    questions = QUESTIONS_COLLECTION.find({
        'flag': 'False'
    }).sort('timestamp', pymongo.DESCENDING)
    feed = list()
    for record in questions:
        try:
            story = {
                'short_description': record['short_description'],
                'long_description': record['long_description'],
                'ques_url': url_for('viewQuestion', quesID=str(record['_id'])),
                'postedBy': record['postedBy'],
                'ansCount': len(record['ansID']),
                'votes': record['votes'],
                'timestamp': record['timestamp']
            }
            if record['accepted_ans']:
                story['answer'] = ANSWERS_COLLECTION.find_one(
                    {'_id': ObjectId(record['accepted_ans'])})
            feed.append(story)
            topcontributors = USERS_COLLECTION.find().sort(
                'karma', pymongo.DESCENDING).limit(10)
            tags = []
            for tag in TAGS_COLLECTION.find():
                tags.append(tag['_id'])
        except KeyError:
            pass
    return render_template('home.html',
                           title='HoverSpace | Home',
                           feed=feed,
                           form=form,
                           tags=tags,
                           topcontributors=topcontributors)
Ejemplo n.º 7
0
def setQuesFlag(quesID):
    usr = current_user.get_id()
    ques_obj = QuestionMethods(quesID)
    postedBy = (ques_obj.getQuestion())['postedBy']
    if usr == postedBy:
        return json.dumps({
            'flag': 'notAllowed',
            'message': 'You cannot flag your own question'
        })
    fl = ques_obj.addFlaggedBy(usr, postedBy)
    if fl == 'flagged':
        return json.dumps({
            'flag':
            'flagged',
            'message':
            'You have marked this question inappropiate'
        })
    elif fl == 'alreadyFlagged':
        ques_obj.removeFlag(usr)
        return json.dumps({'flag': 'flagRemoved', 'message': 'Flag removed'})
    else:
        return json.dumps({
            'flag':
            'quesRemoved',
            'message':
            'This question has been marked inappropiate by more than 10 users, so it is removed'
        })
Ejemplo n.º 8
0
def setAcceptedAns(quesID, ansID):
    usr = current_user.get_id()
    ques_obj = QuestionMethods(quesID)
    postedBy = (ques_obj.getQuestion())['postedBy']
    if usr != postedBy:
        return json.dumps({
            'status':
            'notAllowed',
            'message':
            'You are not allowed to set this answer as accepted.'
        })
    if str(ques_obj.getAcceptedAns()) == ansID:
        ques_obj.removeAcceptedAns()
        return json.dumps({
            'status': 'removed',
            'message': 'Accepted answer removed'
        })
    else:
        ques_obj.setAcceptedAns(ansID)
        return json.dumps({
            'status': 'set',
            'message': 'You have marked this answer as accepted'
        })