def create(self, title, content, departments, users, username, zone): try: msgid = make_random_id('msg', NoticeModel.get_exists_by_id) zone = ZoneModel.get_zone_by_name(zone) author = username msg = NoticeModel(msgid=msgid, title=title, content=content, author=author, zone=zone) msg.save() for department_id in departments: if Department.objects.filter( department_id=department_id).exists(): department = Department.objects.get( department_id=department_id) msg.departments.add(department) for name in users: if User.objects.filter(username=name): u = User.objects.get(username=name) msg.users.add(u) msg.save() return msg, None except Exception as exp: logger.error("cannot create data , %s" % exp.message) return None, exp
def create_flow_node(cls, ticket_type, name, combination, status, is_fallback, com_type=None): try: node_id = make_random_id("nd", cls.get_exists_by_id) ticket_type = TicketTypeModel.objects.get(ticket_type=ticket_type) node = FlowNodeModel(ticket_type=ticket_type, node_id=node_id, name=name, status=status, is_fallback=is_fallback) node.save() for unit_id in combination: if com_type is None: unit = FillUnitModel.objects.get(unit_id=unit_id) else: unit = FillUnitModel.objects.get(id=unit_id) node.combination.add(unit) node.save() return node except Exception as exp: logger.error(msg=exp) return None
def create(cls, name, description, parent_department_id): """ 创建一个新的部门,新部门一定是某一个部门的子部门 :param name: :param description: :param parent_department_id: :return: """ try: parent_department = PortalDepartment.objects.get(department_id=parent_department_id) department_id = make_random_id('dep', cls.is_department_exist) path = ','.join([parent_department.path, department_id]) # TODO:检查是否需要存储自己节点的 level = parent_department.level + 1 department = PortalDepartment( name=name, description=description, department_id=department_id, parent_department=parent_department, path=path, level=level ) department.save() return department except Exception as e: logger.debug(e.message) return None
def create_flow_edge(cls, ticket_type, start_node, end_node): try: edge_id = make_random_id("eg", cls.get_exists_by_id) ticket_type = TicketTypeModel.objects.get(ticket_type=ticket_type) return cls.objects.create(ticket_type=ticket_type, edge_id=edge_id, start_node=start_node, end_node=end_node) except Exception as exp: logger.error(msg=exp) return False
def create_fill_unit(cls, name, attribute, choices_list): try: unit_id = make_random_id("un", cls.get_exists_by_id) choices_list = json.dumps(choices_list) return cls.objects.create( unit_id=unit_id, name=name, attribute=attribute, choices_list=choices_list, ) except Exception as exp: logger.error(msg=exp) return False