Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
 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