예제 #1
0
    def delete_question(self):
        """后台管理员删除问题"""
        if not is_admin():
            raise AuthorityError('权限不足')
        admin = Admin.query.filter_by_(ADid=request.user.id).first_('权限已被回收')

        data = parameter_required(('qulist',))
        qulist = data.get('qulist')
        for quid in qulist:
            qu = Quest.query.filter_by_(QUid=quid).first()
            if not qu:
                continue
            qu.isdelete = True
            qalist = Answer.query.filter_by_(QUid=qu.QUid).all()
            for qa in qalist:
                qa.isdelete = True
            qan = QuestAnswerNote.create({
                'QANid': str(uuid.uuid1()),
                'QANcontent': '删除问题',
                'QANcreateid': admin.ADid,
                'QANtargetId': quid,
                'QANtype': QuestAnswerNoteType.qu.value,
            })
            db.session.add(qan)

        return Success('删除完成')
예제 #2
0
    def __update_questoutline(self, data, qo_model, qotype, qo_filter=None):
        """
        修改问题分类
        :param data: request的data
        :param qo_model: 通过id筛选的问题分类
        :param qo_filter: 通过名称筛选的问题分类
        :return: 出现分类名重复会报错,否则静默处理
        """
        qanaction = ""
        if data.get('qoicon') and qo_model.QOicon != data.get('qoicon'):
            qanaction += '修改icon为 {0}'.format(data.get('qoicon'))
            qo_model.QOicon = data.get('qoicon')
        if data.get('qoname') and qo_model.QOname != data.get('qoname'):

            if qo_filter:
                raise ParamsError('问题分类名不能与已有分类名相同')
            qanaction += '修改name为 {0}'.format(data.get('qoname'))
            qo_model.QOname = data.get('qoname')
        if qotype != int(qo_model.QOtype):
            qanaction += '修改类型为{0}'.format(qotype)
            qo_model.QOtype = qotype
        if qanaction:
            qan_instance = QuestAnswerNote.create({
                'QANid': str(uuid.uuid1()),
                'QANcontent': qanaction,
                'QANtargetId': qo_model.QOid,
                'QANtype': QuestAnswerNoteType.qo.value,
                'QANcreateid': request.user.id,
            })
            db.session.add(qan_instance)
예제 #3
0
    def __update_quest(self, data, qu_model, qu_filter=None):
        """
        修改问题分类
        :param data: request的data
        :param qu_model: 通过id筛选的问题分类
        :param qu_filter: 通过名称筛选的问题分类
        :return: 出现分类名重复会报错,否则静默处理
        """
        if data.get('quest') and qu_model.QUquest != data.get('quest'):

            if qu_filter:
                raise ParamsError('问题分类名不能与已有分类名相同')

            qu_model.QUquest = data.get('quest')

            qan_instance = QuestAnswerNote.create({
                'QANid':
                str(uuid.uuid1()),
                'QANcontent':
                '修改quest 为 {0}'.format(data.get('quest')),
                'QANcreateid':
                request.user.id,
                'QANtargetId':
                qu_model.QUid,
                'QANtype':
                QuestAnswerNoteType.qu.value
            })
            db.session.add(qan_instance)
예제 #4
0
    def delete_questoutline(self):
        """后台管理员删除问题分类"""
        if not is_admin():
            raise AuthorityError('权限不足')
        admin = Admin.query.filter_by_(ADid=request.user.id).first_('权限已被回收')
        data = parameter_required(('qolist', ))
        qolist = data.get('qolist')
        for qoid in qolist:
            qomodel = QuestOutline.query.filter_by_(QOid=qoid).first()
            if not qomodel:
                continue
            qomodel.isdelete = True
            qulist = Quest.query.filter_by_(QOid=qoid).all()
            for qu in qulist:
                qu.isdelete = True
                qalist = Answer.query.filter_by_(QUid=qu.QUid).all()
                for qa in qalist:
                    qa.isdelete = True

            qan = QuestAnswerNote.create({
                'QANid': str(uuid.uuid1()),
                'QANcontent': '删除问题分类',
                'QANcreateid': admin.ADid,
                'QANtargetId': qoid
            })
            db.session.add(qan)
            BASEADMIN().create_action(AdminActionS.delete.value,
                                      'QuestAnswerNote', str(uuid.uuid1()))
        return Success('删除完成')
예제 #5
0
 def __update_answer(self, answer, qa_model):
     """回答修改,不做对比"""
     if not answer:
         return
     answer_model = Answer.query.filter_(Answer.QUid == qa_model.QUid,
                                         Answer.isdelete == False).first()
     if not answer_model:
         db.session.add(
             Answer.create({
                 'QAid': str(uuid.uuid1()),
                 'QUid': qa_model.QUid,
                 'QAcontent': answer,
                 'QAcreateId': request.user.id
             }))
     else:
         qan_instance = QuestAnswerNote.create({
             'QANid':
             str(uuid.uuid1()),
             'QANcontent':
             '修改answer 为 {0}'.format(answer),
             'QANcreateid':
             request.user.id,
             'QANtargetId':
             answer_model.QAid,
             'QANtype':
             QuestAnswerNoteType.qa.value
         })
         answer_model.QAcontent = answer
         db.session.add(qan_instance)