Ejemplo n.º 1
0
 async def post(self):
     r_dict = {'code': 0}
     subject_dimension_id = None
     try:
         code = self.get_argument('code', None)
         title = self.get_argument('title', None)
         category = self.get_argument('category', None)
         status = self.get_argument('status', None)  # 状态
         ordered = self.get_argument('ordered', None)
         comment = self.get_argument('comment', None)
         if code and title and category and ordered:
             c_count = await SubjectDimension.count(
                 dict(code=code, parent_cid={'$in': [None, '']}))
             t_count = await SubjectDimension.count(
                 dict(title=title, parent_cid={'$in': [None, '']}))
             r_count = await SubjectDimension.count(
                 dict(ordered=int(ordered), parent_cid={'$in': [None, '']}))
             if c_count > 0:
                 r_dict['code'] = -7
             elif t_count > 0:
                 r_dict['code'] = -6
             elif r_count > 0:
                 r_dict['code'] = -5
             else:
                 if status == 'on':
                     status = STATUS_SUBJECT_DIMENSION_ACTIVE
                 else:
                     status = STATUS_SUBJECT_DIMENSION_INACTIVE
                 subject_dimension = SubjectDimension(
                     code=code,
                     title=title,
                     category=int(category),
                     ordered=int(ordered))
                 subject_dimension.status = status
                 subject_dimension.comment = comment if comment else None
                 subject_dimension.created_id = self.current_user.oid
                 subject_dimension.updated_id = self.current_user.oid
                 subject_dimension_id = await subject_dimension.save()
                 r_dict['code'] = 1
         else:
             if not title:
                 r_dict['code'] = -1
             if not category:
                 r_dict['code'] = -2
             if not ordered:
                 r_dict['code'] = -4
     except RuntimeError:
         if subject_dimension_id:
             await SubjectDimension.delete_by_ids(subject_dimension_id)
         logger.error(traceback.format_exc())
     return r_dict
Ejemplo n.º 2
0
 async def post(self, dimension_id):
     p_subject_dimension = await SubjectDimension.find_one(
         {'_id': ObjectId(dimension_id)})
     r_dict = {'code': 0}
     sub_dimension_id = None
     try:
         title = self.get_argument('title', None)
         status = self.get_argument('status', None)  # 状态
         ordered = self.get_argument('ordered', None)
         code = self.get_argument('code', None)
         comment = self.get_argument('comment', None)
         if title and ordered and p_subject_dimension and code:
             t_count = await SubjectDimension.count(
                 dict(title=title, parent_cid=p_subject_dimension.cid))
             r_count = await SubjectDimension.count(
                 dict(ordered=int(ordered),
                      parent_cid=p_subject_dimension.cid))
             c_count = await SubjectDimension.count(
                 dict(code=code, parent_cid=p_subject_dimension.cid))
             if c_count > 0:
                 r_dict['code'] = -2
             elif t_count > 0:
                 r_dict['code'] = -6
             elif r_count > 0:
                 r_dict['code'] = -5
             else:
                 if status == 'on':
                     status = STATUS_SUBJECT_DIMENSION_ACTIVE
                 else:
                     status = STATUS_SUBJECT_DIMENSION_INACTIVE
                 subject_dimension = SubjectDimension(title=title,
                                                      ordered=int(ordered),
                                                      code=code)
                 subject_dimension.status = status
                 subject_dimension.comment = comment if comment else None
                 subject_dimension.created_id = self.current_user.oid
                 subject_dimension.updated_id = self.current_user.oid
                 subject_dimension.parent_cid = p_subject_dimension.cid
                 sub_dimension_id = await subject_dimension.save()
                 await do_subject_dimension(p_subject_dimension.cid)
                 r_dict['code'] = 1
         else:
             if not title:
                 r_dict['code'] = -1
             if not ordered:
                 r_dict['code'] = -4
     except RuntimeError:
         if sub_dimension_id:
             await SubjectDimension.delete_by_ids(sub_dimension_id)
         logger.error(traceback.format_exc())
     return r_dict