コード例 #1
0
ファイル: Edit.py プロジェクト: jinjiacun/bug_report
    def EditProjectForm(self):
        layout = QFormLayout()
        my_business = business()
        (status,my_info) = my_business.get_project_one_by_id(self.id)
        if not status:
            content = u'查询错误'
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'警告',content)
            self.close()
        #项目添加
        layout = QFormLayout()
        self.name = QLineEdit()
        self.name.setText(my_info['name'])
        layout.addRow(QLabel(u"<font color='red'>*</font>项目名称:"), self.name)
        self.number = QLabel(my_info['number'])
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.description = QTextEdit()
        self.description.setText(my_info['description'])
        layout.addRow(QLabel(u"项目描述:"), self.description)

        data ={}
        (status,content) = my_business.get_dict()
        if status:
            if content.has_key('admin'):
                for (key,value) in content['admin'].items():
                    tmp_value = str(value)
                    data[tmp_value] = int(str(key))
        display_data = []
        (status,content1) = my_business.get_project_mem_by_project_id(self.id)
        if status:
            for item in content1:
                if content.has_key('admin'):
                    display_data.append(content['admin'][unicode(item)])

        self.project_mem = TableComButton(self,data,display_data)
        layout.addRow(QLabel(u"<font color='red'>*</font>成员:"), self.project_mem)
        data = []
        (status,content) = my_business.get_project_mod_by_project_id(self.id)
        if status:
            for item in content:
                data.append(item)
        self.project_mod = TableTextButton(self,data)
        layout.addRow(QLabel(u"<font color='red'>*</font>模块:"), self.project_mod)
        self.formGroupBox.setLayout(layout)
コード例 #2
0
ファイル: Add.py プロジェクト: jinjiacun/bug_report
    def AddProjectForm(self):
        layout = QFormLayout()
        my_business = business()
        number = my_business.get_number(Add.module_index)
        #项目添加
        layout = QFormLayout()
        self.name = QLineEdit()
        layout.addRow(QLabel(u"<font color='red'>*</font>项目名称:"), self.name)
        self.number = QLabel(number)
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.description = QTextEdit()
        layout.addRow(QLabel(u"项目描述:"), self.description)

        data ={}
        (status,content) = my_business.get_dict()
        if status:
            for (key,value) in content['admin'].items():
                tmp_value = str(value)
                data[tmp_value] = int(str(key))
        self.project_mem = TableComButton(self,data)
        layout.addRow(QLabel(u"成员:"), self.project_mem)
        self.project_mod = TableTextButton()
        layout.addRow(QLabel(u"模块:"), self.project_mod)
        self.formGroupBox.setLayout(layout)
コード例 #3
0
ファイル: Add.py プロジェクト: jinjiacun/bug_report
class Add(QDialog):
    title = ''
    title_index = 0
    module = ''
    module_index = 0
    status = False
    message = ''
    def __init__(self, parent=None,title_index=1,module_index=1):
        super(Add, self).__init__(parent)
        mainLayout = QVBoxLayout()
        self.parent = parent

        Add.title  = Dict.title_list[title_index]
        Add.module = Dict.module_list[module_index]
        Add.title_index  = title_index
        Add.module_index = module_index
        self.remote_message = {}


        self.AddToolBar()
        self.formGroupBox = QGroupBox(u"表单:")
        if 'Project' == Add.module:
            self.AddProjectForm()
        elif 'Bug' == Add.module:
            self.AddBugForm()
        elif 'Admin' == Add.module:
            self.AddAdminForm()
        elif 'Role' == Add.module:
            self.AddRoleForm()
        elif 'Part' == Add.module:
            self.AddPartForm()
        elif 'Resume' == Add.module:
            self.AddResumeForm()
        elif 'Positionhr' == Add.module:
            self.AddPositionhrForm()


        mainLayout.addWidget(self.horizontalGroupBox)
        mainLayout.addWidget(self.formGroupBox)
        self.setLayout(mainLayout)
        self.setFixedWidth(1000)
        self.setFixedHeight(800)
        self.setWindowFlags(Qt.Window)
        self.setWindowTitle(Add.title)

    #添加项目
    def AddProjectForm(self):
        layout = QFormLayout()
        my_business = business()
        number = my_business.get_number(Add.module_index)
        #项目添加
        layout = QFormLayout()
        self.name = QLineEdit()
        layout.addRow(QLabel(u"<font color='red'>*</font>项目名称:"), self.name)
        self.number = QLabel(number)
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.description = QTextEdit()
        layout.addRow(QLabel(u"项目描述:"), self.description)

        data ={}
        (status,content) = my_business.get_dict()
        if status:
            for (key,value) in content['admin'].items():
                tmp_value = str(value)
                data[tmp_value] = int(str(key))
        self.project_mem = TableComButton(self,data)
        layout.addRow(QLabel(u"成员:"), self.project_mem)
        self.project_mod = TableTextButton()
        layout.addRow(QLabel(u"模块:"), self.project_mod)
        self.formGroupBox.setLayout(layout)

    #添加bug
    def AddBugForm(self):
        layout = QFormLayout()
        my_business = business()
        number = my_business.get_number(Add.module_index)
        #bug添加
        layout = QFormLayout()
        self.number = QLabel(number)
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.level = QComboBox()
        self.level.addItem(u'超高',QVariant(1))
        self.level.addItem(u'高',QVariant(2))
        self.level.addItem(u'一般',QVariant(3))
        layout.addRow(QLabel(u"<font color='red'>*</font>优先级:"), self.level)
        self.status = QComboBox()
        self.status.addItem(u'待解救',QVariant(1))
        self.status.addItem(u'已解救',QVariant(2))
        self.status.addItem(u'已关闭',QVariant(3))
        layout.addRow(QLabel(u"<font color='red'>*</font>状态:"), self.status)
        self.project_id = QComboBox()
        (status,my_dict) = my_business.get_dict()
        self.project_id.addItem(u'请选择项目',QVariant(0))
        self.my_dict = my_dict
        if my_dict.has_key('project'):
            for (key,value) in my_dict['project'].items():
                self.project_id.addItem(value,QVariant(key))
        layout.addRow(QLabel(u"<font color='red'>*</font>所属项目:"), self.project_id)
        self.connect(self.project_id, SIGNAL('activated(int)'), self.onActivatedModule)
        self.project_mod_id = QComboBox()
        self.project_mod_id.addItem(u'请选择项目模块',QVariant(0))
        layout.addRow(QLabel(u"<font color='red'>*</font>所属模块:"), self.project_mod_id)
        self.get_member = QComboBox()
        self.get_member.addItem(u'请选择受理人',QVariant(0))
        layout.addRow(QLabel(u"<font color='red'>*</font>受理人:"), self.get_member)
        self.title = QTextEdit()
        layout.addRow(QLabel(u"<font color='red'>*</font>问题描述:"), self.title)
        self.description = WebViewEx()
        layout.addRow(QLabel(u"操作过程:"), self.description)
        self.formGroupBox.setLayout(layout)
        self.formGroupBox.resize(600,700)
        self.resize(600, 700)

    def myClip(self):
        #print QApplication.clipboard().text()
        print 'my clip test'
        #self.description.insertHTML('123')
        save_clipboard_image()
        message = upload_clipboard_pic()
        self.remote_message = list(message)
        if self.remote_message[0]:
            #self.description.insertHTML('<img src="%s" alt="%s"/>'%(self.remote_message[1]['url'],self.remote_message[1]['title']))
            self.description.insertHTML(self.remote_message[1]['url'])
        pass

    #级联关系(项目-模块)
    def onActivatedModule(self, cuindex):
        #print 'cuindex:%d'%cuindex
        project_id = cuindex
        if 0 >= project_id:
            return
        #查询项目下面的模块
        my_business = business()
        (status,content) = my_business.get_project_mod_by_project_id(project_id)
        self.project_mod_id.clear()
        self.project_mod_id.addItem(u'请选择项目模块',QVariant(0))
        if status:
            for (key,item) in content.items():
                self.project_mod_id.addItem(unicode(key),QVariant(item))

        #成员
        (status,content) = my_business.get_project_mem_by_project_id(project_id)
        self.get_member.clear()
        self.get_member.addItem(u'请选择受理人',QVariant(0))
        if status:
            for item in content:
                self.get_member.addItem(unicode(self.my_dict['admin'][str(item)]),QVariant(item))

    #添加用户
    def AddAdminForm(self):
        layout = QFormLayout()
        my_business = business()
        number = my_business.get_number(Add.module_index)
        #用户添加
        layout = QFormLayout()
        self.number = QLabel(number)
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.user_name = QLineEdit()
        layout.addRow(QLabel(u"<font color='red'>*</font>用户帐号:"), self.user_name)
        self.passwd = QLineEdit()
        self.passwd.setEchoMode(QLineEdit.Password)
        layout.addRow(QLabel(u"<font color='red'>*</font>密码:"), self.passwd)
        self.re_passwd = QLineEdit()
        self.re_passwd.setEchoMode(QLineEdit.Password)
        layout.addRow(QLabel(u"<font color='red'>*</font>确认密码:"), self.re_passwd)
        self.name = QLineEdit()
        layout.addRow(QLabel(u"<font color='red'>*</font>姓名:"), self.name)
        self.status = QComboBox()
        self.status.addItems([u'正常'])
        self.status.addItems([u'禁用'])
        layout.addRow(QLabel(u"<font color='red'>*</font>状态:"), self.status)
        self.part = QComboBox()
        #查询部门
        my_business = business()
        (status,result) = my_business.get_dict()
        if result.has_key('part'):
            for (key,item) in result['part'].items():
                self.part.addItems([item])
        layout.addRow(QLabel(u"<font color='red'>*</font>部门:"), self.part)
        self.role = QComboBox()
        if result.has_key('role'):
            for (key,item) in result['role'].items():
                self.role.addItems([item])
        layout.addRow(QLabel(u"<font color='red'>*</font>角色:"), self.role)
        self.formGroupBox.setLayout(layout)

    #添加角色
    def AddRoleForm(self):
        layout = QFormLayout()
        my_business = business()
        number = my_business.get_number(Add.module_index)
        #角色添加
        layout = QFormLayout()
        self.number = QLabel(number)
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.name = QLineEdit()
        layout.addRow(QLabel(u"<font color='red'>*</font>角色名称:"), self.name)
        #查询资源
        (status,content) = my_business.get_resource()
        source_name_list = {}
        if status:
             rows = int(content['record_count'])
             for i in range(0,rows-1):
                 key = content['list'][i]['source_name']
                 id  = content['list'][i]['id']
                 source_name_list[key] = id
        self.resource = MulCheckedBox(self,source_name_list)
        layout.addRow(QLabel(u"<font color='red'>*</font>权限:"), self.resource)
        self.formGroupBox.setLayout(layout)

    #添加部门
    def AddPartForm(self):
        layout = QFormLayout()
        my_business = business()
        number = my_business.get_number(Add.module_index)
        #部门添加
        layout = QFormLayout()
        self.number = QLabel(number)
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.name = QLineEdit()
        layout.addRow(QLabel(u"<font color='red'>*</font>部门名称:"), self.name)
        self.formGroupBox.setLayout(layout)

    #添加简历
    def AddResumeForm(self):
        layout = QFormLayout()
        my_business = business()
        number = my_business.get_number(Add.module_index)
        #简历添加
        layout = QFormLayout()
        self.number = QLabel(number)
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.candidates = QLineEdit()
        layout.addRow(QLabel(u"<font color='red'>*</font>应聘人:"), self.candidates)
        self.telephone = QLineEdit()
        layout.addRow(QLabel(u"<font color='red'>*</font>联系方式:"), self.telephone)
        self.position_id = QComboBox()
        (status,content) = my_business.get_dict()
        if status:
            if content.has_key('positionhr'):
                for (key,value) in content['positionhr'].items():
                    self.position_id.addItems([value])
        layout.addRow(QLabel(u"<font color='red'>*</font>应聘岗位:"), self.position_id)
        self.part_id = QComboBox()
        if status:
            for (key,value) in content['part'].items():
                self.part_id.addItems([value])
        layout.addRow(QLabel(u"<font color='red'>*</font>应聘部门:"), self.part_id)
        self.accessories = FileUpload()
        layout.addRow(QLabel(u"<font color='red'>*</font>简历附件:"), self.accessories)
        self.remark = QTextEdit()
        layout.addRow(QLabel(u"备注:"), self.remark)
        self.formGroupBox.setLayout(layout)

    #添加招聘岗位
    def AddPositionhrForm(self):
        layout = QFormLayout()

        #招聘岗位添加
        layout = QFormLayout()
        self.part_id = QComboBox()
        my_business = business()
        (status,content) = my_business.get_dict()
        if status:
            for (key,item) in content['part'].items():
                self.part_id.addItems([item])
        layout.addRow(QLabel(u"<font color='red'>*</font>部门:"), self.part_id)

        self.name = QLineEdit()
        layout.addRow(QLabel(u"<font color='red'>*</font>岗位:"),self.name)
        self.description = QTextEdit()
        layout.addRow(QLabel(u"<font color='red'>*</font>要求:"), self.description)
        self.formGroupBox.setLayout(layout)

    def AddToolBar(self):
        self.horizontalGroupBox = QGroupBox(u"操作")
        self.horizontalGroupBox.setFixedHeight(50)
        layout = QHBoxLayout()

        btn_save = QPushButton(u'保存')
        #self.connect(btn_save,SIGNAL("clicked()"),self,SLOT("accept()"))
        btn_save.setFixedWidth(50)
        btn_save.clicked.connect(self.SaveForm)
        layout.addWidget(btn_save)

        btn_cancel = QPushButton(u'取消')
        btn_cancel.setFixedWidth(50)
        btn_cancel.clicked.connect(self.Cancel)
        layout.addWidget(btn_cancel)

        btn_close = QPushButton(u'关闭')
        btn_close.setFixedWidth(50)
        btn_close.clicked.connect(self.Close)
        layout.addWidget(btn_close)

        btn_paste = QPushButton(u'粘贴')
        btn_paste.setShortcut('Ctrl+V')
        btn_paste.clicked.connect(self.myClip)
        #btn_paste.setVisible(False)
        layout.addWidget(btn_paste)


        self.horizontalGroupBox.setLayout(layout)
        pass

    def Cancel(self):
        pass

    def Close(self,event):
        #self.emit(SIGNAL('closeEmitApp()'))
        self.close()
        pass
    #-----------------保存-----------------------------
    def SaveForm(self):
        if 'Project' == Add.module:
            self.SaveProejct()
        elif 'Bug' == Add.module:
            self.SaveBug()
        elif 'Admin' == Add.module:
            self.SaveAdmin()
        elif 'Role' == Add.module:
            self.SaveRole()
        elif 'Part' == Add.module:
            self.SavePart()
        elif 'Resume' == Add.module:
            self.SaveResume()
        elif 'Positionhr' == Add.module:
            self.SavePositionhr()
        pass

    #保存项目
    def SaveProejct(self):
        data={'number':'','name':'','description':'','create':0}
        mem_data={'project_id':0,'admin_id':[]}
        mod_data={'project_id':0,'name':[]}
        my_business = business()

        #组装数据
        data['number']        = urllib.quote(str(self.number.text()))
        data['name']          = urllib.quote(str(self.name.text()))
        data['description']  = urllib.quote(str(self.description.toPlainText()))
        data['create']        = get_cur_admin_id()

        #项目成员
        mem_data['admin_id'] = self.project_mem.text()

        #项目模块
        tmp_mod_data_name_list = self.project_mod.text()
        mod_data_name_list = []
        for item in tmp_mod_data_name_list:
            mod_data_name_list.append(urllib.quote(item))
        mod_data['name'] = mod_data_name_list


        (status,content) = my_business.add_proejct(data,mem_data,mod_data)
        if status:
            Add.message = content
            Add.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
        else:
            Add.message = content
            Add.status = False
            self.parent.set_message(u'错误',content)

    #保存bug
    def SaveBug(self):
        data={'number':'','title':'','level':0,'status':0,'project_id':0,'project_mod_id':0,
            'get_member':0,'description':'','put_member':0}
        my_business = business()

        #组装数据
        data['number']        = urllib.quote(str(self.number.text()))
        data['title']         = urllib.quote(str(self.title))
        data['level']         = urllib.quote(str(self.level.itemData(self.level.currentIndex()).toPyObject()))

        data['status']        = urllib.quote(str(self.status.itemData(self.status.currentIndex()).toPyObject()))
        data['project_id']   = urllib.quote(str(self.project_id.itemData(self.project_id.currentIndex()).toPyObject()))
        data['project_mod_id'] = urllib.quote(str(self.project_mod_id.itemData(self.project_mod_id.currentIndex()).toPyObject()))
        data['get_member']   = urllib.quote(str(self.get_member.itemData(self.get_member.currentIndex()).toPyObject()))
        time.sleep(3)
        data['description']  =  base64.b64encode(self.description.text())
        data['put_member']   = get_cur_admin_id()

        (status,content) = my_business.add_bug(data)
        if status:
            Add.message = content
            Add.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
        else:
            Add.message = content
            Add.status = False
            self.parent.set_message(u'错误',content)

    #保存用户
    def SaveAdmin(self):
        data={'number':0,'admin_name':'','passwd':'','re_passwd':'','name':'','status':0,'part':0,'role':0}
        my_business = business()

        #组装数据
        data['number']     = urllib.quote(str(self.number.text()))
        data['admin_name'] = urllib.quote(str(self.user_name.text()))
        data['passwd']    = urllib.quote(str(self.passwd.text()))
        data['re_passwd'] = urllib.quote(str(self.re_passwd.text()))
        data['name']       = urllib.quote(str(self.name.text()))
        data['status']     = 0
        data['part']       = 1
        data['role']       = 2
        #data['position']   = 1

        if data['passwd'] != data['re_passwd']:
            content = u'两次密码不一致'
            Add.message = content
            Add.status = False
            self.parent.set_message(u'警告',content)
            return False
        data.pop('re_passwd')
        (status,content) = my_business.add_admin(data)

        print 'content:%s'%content
        if status:
            Add.message = content
            Add.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
        else:
            Add.message = content
            Add.status = False
            self.parent.set_message(u'错误',content)

    #保存角色
    def SaveRole(self):
        data={'number':'','name':'','resource':0}
        my_business = business()

        #组装数据
        data['number']   = urllib.quote(str(self.number.text()))
        data['name']     = urllib.quote(str(self.name.text()))
        data['resource'] = urllib.quote(str(self.resource.text()))

        (status,content) = my_business.add_role(data)
        print 'content:%s'%content
        if status:
            Add.message = content
            Add.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
        else:
            Add.message = content
            Add.status = False
            self.parent.set_message(u'错误',content)

    #保存部门
    def SavePart(self):
        data={'number':'','name':'','create':0}
        my_business = business()

        #组装数据
        data['number'] = urllib.quote(str(self.number.text()))
        data['name']   = urllib.quote(str(self.name.text()))
        data['create'] = get_cur_admin_id()

        (status,content) = my_business.add_part(data)
        print 'content:%s'%content
        if status:
            Add.message = content
            Add.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
        else:
            Add.message = content
            Add.status = False
            self.parent.set_message(u'错误',content)
        pass

    #保存简历
    def SaveResume(self):
        data={'number':'','candidates':'','telephone':'','position_id':0,'part_id':0,
            'accessories':0,'remartk':'','create':0}
        my_business = business()

        #组装数据
        data['number']      = urllib.quote(str(self.number.text()))
        data['candidates']  = urllib.quote(str(self.candidates.text()))
        data['telephone']   = urllib.quote(str(self.telephone.text()))
        data['position_id'] = 1
        data['part_id']     = 1
        data['accessories'] = 0
        #附件
        (status,content) = my_business.file_upload(str(self.accessories.filename))
        if status:
            data['accessories'] = int(content['content']['id'])
        else:
            Add.message = content
            Add.status = False
            self.parent.set_message(u'错误',content)
            return False

        data['remartk']      = urllib.quote(str(self.remark.toPlainText()))
        data['create']      = get_cur_admin_id()

        (status,content) = my_business.add_resume(data)
        print 'content:%s'%content
        if status:
            Add.message = content
            Add.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
        else:
            Add.message = content
            Add.status = False
            self.parent.set_message(u'错误',content)

    #保存简历岗位
    def SavePositionhr(self):
        data={'part_id':0,'name':'','description':'','create':0}
        my_business = business()

        #组装数据
        data['part_id'] = 2
        data['description'] = urllib.quote(str(self.description.toPlainText()))
        data['name']   = urllib.quote(str(self.name.text()))
        data['create'] = get_cur_admin_id()

        (status,content) = my_business.add_positionhr(data)
        print 'content:%s'%content
        if status:
            Add.message = content
            Add.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
        else:
            Add.message = content
            Add.status = False
            self.parent.set_message(u'错误',content)
コード例 #4
0
ファイル: Edit.py プロジェクト: jinjiacun/bug_report
class Edit(QDialog):
    title = ''
    title_index = 0
    module = ''
    module_index = 0
    status = False
    message = ''
    def __init__(self, parent=None,title_index=1,module_index=1,id=0):
        super(Edit, self).__init__(parent)
        mainLayout = QVBoxLayout()
        self.parent = parent
        self.id = id

        Edit.title  = Dict.title_list[title_index]
        Edit.module = Dict.module_list[module_index]
        Edit.title_index  = title_index
        Edit.module_index = module_index


        self.AddToolBar()
        self.formGroupBox = QGroupBox(u"表单:")
        if 'Project' == Edit.module:
            self.EditProjectForm()
        elif 'Bug' == Edit.module:
            self.EditBugForm()
        elif 'Admin' == Edit.module:
            self.EditAdminForm()
        elif 'Role' == Edit.module:
            self.EditRoleForm()
        elif 'Part' == Edit.module:
            self.EditPartForm()
        elif 'Resume' == Edit.module:
            self.EditResumeForm()
        elif 'Positionhr' == Edit.module:
            self.EditPositionhrForm()


        mainLayout.addWidget(self.horizontalGroupBox)
        mainLayout.addWidget(self.formGroupBox)
        self.setLayout(mainLayout)
        self.setFixedWidth(1000)
        self.setFixedHeight(800)
        self.setWindowFlags(Qt.Window)
        self.setWindowTitle(Edit.title)

    #编辑项目
    def EditProjectForm(self):
        layout = QFormLayout()
        my_business = business()
        (status,my_info) = my_business.get_project_one_by_id(self.id)
        if not status:
            content = u'查询错误'
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'警告',content)
            self.close()
        #项目添加
        layout = QFormLayout()
        self.name = QLineEdit()
        self.name.setText(my_info['name'])
        layout.addRow(QLabel(u"<font color='red'>*</font>项目名称:"), self.name)
        self.number = QLabel(my_info['number'])
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.description = QTextEdit()
        self.description.setText(my_info['description'])
        layout.addRow(QLabel(u"项目描述:"), self.description)

        data ={}
        (status,content) = my_business.get_dict()
        if status:
            if content.has_key('admin'):
                for (key,value) in content['admin'].items():
                    tmp_value = str(value)
                    data[tmp_value] = int(str(key))
        display_data = []
        (status,content1) = my_business.get_project_mem_by_project_id(self.id)
        if status:
            for item in content1:
                if content.has_key('admin'):
                    display_data.append(content['admin'][unicode(item)])

        self.project_mem = TableComButton(self,data,display_data)
        layout.addRow(QLabel(u"<font color='red'>*</font>成员:"), self.project_mem)
        data = []
        (status,content) = my_business.get_project_mod_by_project_id(self.id)
        if status:
            for item in content:
                data.append(item)
        self.project_mod = TableTextButton(self,data)
        layout.addRow(QLabel(u"<font color='red'>*</font>模块:"), self.project_mod)
        self.formGroupBox.setLayout(layout)

    #编辑bug
    def EditBugForm(self):
        layout = QFormLayout()
        my_business = business()
        (status,my_info) = my_business.get_bug_one_by_id(self.id)
        if not status:
            content = u'查询错误'
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'警告',content)
            self.close()
        #bug添加
        layout = QFormLayout()
        self.number = QLabel(my_info['number'])
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.level = QComboBox()
        self.level.addItem(u'超高',QVariant(1))
        '''
        if 1 == my_info['level']:
            self.level.setCurrentIndex(1)
        '''
        self.level.addItem(u'高',QVariant(2))
        self.level.addItem(u'一般',QVariant(3))
        index = self.level.findData(QVariant(my_info['level']))
        self.level.setCurrentIndex(index)
        layout.addRow(QLabel(u"<font color='red'>*</font>优先级:"), self.level)
        self.status = QComboBox()
        self.status.addItem(u'待解救',QVariant(1))
        self.status.addItem(u'已解救',QVariant(2))
        self.status.addItem(u'已关闭',QVariant(3))
        index = self.level.findData(QVariant(my_info['status']))
        self.status.setCurrentIndex(index)
        layout.addRow(QLabel(u"<font color='red'>*</font>状态:"), self.status)
        self.project_id = QComboBox()
        (status,my_dict) = my_business.get_dict()
        self.project_id.addItem(u'请选择项目',QVariant(0))
        self.my_dict = my_dict
        if my_dict.has_key('project'):
            for (key,value) in my_dict['project'].items():
                self.project_id.addItem(value,QVariant(key))
        index = self.project_id.findData(QVariant(my_info['project_id']))
        self.project_id.setCurrentIndex(index)
        layout.addRow(QLabel(u"<font color='red'>*</font>所属项目:"), self.project_id)
        self.connect(self.project_id, SIGNAL('activated(int)'), self.onActivatedModule)
        self.project_mod_id = QComboBox()
        layout.addRow(QLabel(u"<font color='red'>*</font>所属模块:"), self.project_mod_id)
        self.get_member = QComboBox()
        layout.addRow(QLabel(u"<font color='red'>*</font>受理人:"), self.get_member)
        self.onActivatedModule(my_info['project_id'])
        index = self.project_mod_id.findData(QVariant(my_info['project_mod_id']))
        self.project_mod_id.setCurrentIndex(index)
        index = self.get_member.findData(QVariant(my_info['get_member']))
        self.get_member.setCurrentIndex(index)
        self.title = QTextEdit()
        self.title.setPlainText(my_info['title'])
        layout.addRow(QLabel(u"<font color='red'>*</font>问题描述:"), self.title)
        self.description = WebViewEx(self,my_info['description'])
        layout.addRow(QLabel(u"操作过程:"), self.description)
        self.formGroupBox.setLayout(layout)
        self.formGroupBox.resize(600,700)
        self.resize(600, 700)

    #级联关系(项目-模块)
    def onActivatedModule(self, cuindex):
        #print 'cuindex:%d'%cuindex
        project_id = cuindex
        if 0 >= project_id:
            return
        #查询项目下面的模块
        my_business = business()
        (status,content) = my_business.get_project_mod_by_project_id(project_id)
        self.project_mod_id.clear()
        self.project_mod_id.addItem(u'请选择项目模块',QVariant(0))
        if status:
            for (key,item) in content.items():
                self.project_mod_id.addItem(unicode(key),QVariant(item))

        #成员
        (status,content) = my_business.get_project_mem_by_project_id(project_id)
        self.get_member.clear()
        self.get_member.addItem(u'请选择受理人',QVariant(0))
        if status:
            for item in content:
                self.get_member.addItem(unicode(self.my_dict['admin'][str(item)]),QVariant(item))

    #编辑用户
    def EditAdminForm(self):
        layout = QFormLayout()
        my_business = business()
        (status,my_info) = my_business.get_admin_one_by_id(self.id)
        if not status:
            content = u'查询错误'
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'警告',content)
            self.close()
        #用户添加
        layout = QFormLayout()
        self.number = QLabel(my_info['number'])
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.user_name = QLineEdit()
        self.user_name.setText(my_info['admin_name'])
        layout.addRow(QLabel(u"<font color='red'>*</font>用户帐号:"), self.user_name)
        self.passwd = QLineEdit()
        self.passwd.setEchoMode(QLineEdit.Password)
        layout.addRow(QLabel(u"<font color='red'>*</font>密码:"), self.passwd)
        self.re_passwd = QLineEdit()
        self.re_passwd.setEchoMode(QLineEdit.Password)
        layout.addRow(QLabel(u"<font color='red'>*</font>确认密码:"), self.re_passwd)
        self.name = QLineEdit()
        self.name.setText(my_info['name'])
        layout.addRow(QLabel(u"<font color='red'>*</font>姓名:"), self.name)
        self.status = QComboBox()
        self.status.addItem(u'正常',QVariant(0))
        self.status.addItem(u'禁用',QVariant(-1))
        index = self.status.findData(QVariant(my_info['status']))
        self.status.setCurrentIndex(index)
        layout.addRow(QLabel(u"<font color='red'>*</font>状态:"), self.status)
        self.part = QComboBox()
        #查询部门
        my_business = business()
        (status,result) = my_business.get_dict()
        if result.has_key('part'):
            for (key,item) in result['part'].items():
                self.part.addItem(item,QVariant(key))
        index = self.part.findData(QVariant(my_info['part']))
        self.part.setCurrentIndex(index)
        layout.addRow(QLabel(u"<font color='red'>*</font>部门:"), self.part)
        self.role = QComboBox()
        if result.has_key('role'):
            for (key,item) in result['role'].items():
                self.role.addItem(item,QVariant(key))
        index = self.role.findData(QVariant(my_info['role']))
        self.role.setCurrentIndex(index)
        layout.addRow(QLabel(u"<font color='red'>*</font>角色:"), self.role)
        self.formGroupBox.setLayout(layout)

    #编辑角色
    def EditRoleForm(self):
        layout = QFormLayout()
        my_business = business()
        (status,my_info) = my_business.get_role_one_by_id(self.id)
        if not status:
            content = u'查询错误'
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'警告',content)
            self.close()
        #角色添加
        layout = QFormLayout()
        self.number = QLabel(my_info['number'])
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.name = QLineEdit()
        self.name.setText(my_info['name'])
        layout.addRow(QLabel(u"<font color='red'>*</font>角色名称:"), self.name)
        #查询资源
        (status,content) = my_business.get_resource()
        source_name_list = {}
        if status:
             rows = int(content['record_count'])
             for i in range(0,rows-1):
                 key = content['list'][i]['source_name']
                 id  = content['list'][i]['id']
                 source_name_list[key] = id
        check_data = []
        tmp_list = my_info['resource'].split(',')
        for item in tmp_list:
            check_data.append(int(str(item)))
        self.resource = MulCheckedBox(self,source_name_list,check_data)
        layout.addRow(QLabel(u"<font color='red'>*</font>权限:"), self.resource)
        self.formGroupBox.setLayout(layout)

    #编辑部门
    def EditPartForm(self):
        layout = QFormLayout()
        my_business = business()
        (status,my_info) = my_business.get_part_one_by_id(self.id)
        if not status:
            content = u'查询错误'
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'警告',content)
            self.close()
        #部门添加
        layout = QFormLayout()
        self.number = QLabel(my_info['number'])
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.name = QLineEdit()
        self.name.setText(my_info['name'])
        layout.addRow(QLabel(u"<font color='red'>*</font>部门名称:"), self.name)
        self.formGroupBox.setLayout(layout)

    #编辑简历
    def EditResumeForm(self):
        layout = QFormLayout()
        my_business = business()
        (status,my_info) = my_business.get_resume_one_by_id(self.id)
        if not status:
            content = u'查询错误'
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'警告',content)
            self.close()
        #简历添加
        layout = QFormLayout()
        self.number = QLabel(my_info['number'])
        layout.addRow(QLabel(u" 编号:"), self.number)
        self.candidates = QLineEdit()
        self.candidates.setText(my_info['candidates'])
        layout.addRow(QLabel(u"<font color='red'>*</font>应聘人:"), self.candidates)
        self.telephone = QLineEdit()
        self.telephone.setText(my_info['telephone'])
        layout.addRow(QLabel(u"<font color='red'>*</font>联系方式:"), self.telephone)
        self.position_id = QComboBox()
        (status,content) = my_business.get_dict()
        if status:
            if content.has_key('positionhr'):
                for (key,value) in content['positionhr'].items():
                    self.position_id.addItem(value,QVariant(key))
        index = self.position_id.findData(QVariant(my_info['position_id']))
        self.position_id.setCurrentIndex(index)
        layout.addRow(QLabel(u"<font color='red'>*</font>应聘岗位:"), self.position_id)
        self.part_id = QComboBox()
        if status:
            for (key,value) in content['part'].items():
                self.part_id.addItem(value,QVariant(key))
        index = self.part_id.findData(QVariant(my_info['part_id']))
        self.part_id.setCurrentIndex(index)
        layout.addRow(QLabel(u"<font color='red'>*</font>应聘部门:"), self.part_id)
        self.accessories = FileUpload(self,my_info['accessories_url'])
        layout.addRow(QLabel(u"<font color='red'>*</font>简历附件:"), self.accessories)
        self.remark = QTextEdit()
        self.remark.setText(my_info['remartk'])
        layout.addRow(QLabel(u"备注:"), self.remark)
        self.formGroupBox.setLayout(layout)

    #编辑招聘岗位
    def EditPositionhrForm(self):
        layout = QFormLayout()
        my_business = business()
        (status,my_info) = my_business.get_positionhr_one_by_id(self.id)
        if not status:
            content = u'查询错误'
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'警告',content)
            self.close()

        #招聘岗位添加
        layout = QFormLayout()
        self.part_id = QComboBox()
        my_business = business()
        (status,content) = my_business.get_dict()
        if status:
            for (key,item) in content['part'].items():
                self.part_id.addItem(item,QVariant(key))
        index = self.part_id.findData(QVariant(my_info['part_id']))
        self.part_id.setCurrentIndex(index)
        layout.addRow(QLabel(u"<font color='red'>*</font>部门:"), self.part_id)

        self.name = QLineEdit()
        self.name.setText(my_info['name'])
        layout.addRow(QLabel(u"<font color='red'>*</font>岗位:"),self.name)
        self.description = QTextEdit()
        self.description.setText(my_info['description'])
        layout.addRow(QLabel(u"<font color='red'>*</font>要求:"), self.description)
        self.formGroupBox.setLayout(layout)

    def AddToolBar(self):
        self.horizontalGroupBox = QGroupBox(u"操作")
        self.horizontalGroupBox.setFixedHeight(50)
        layout = QHBoxLayout()

        btn_save = QPushButton(u'保存')
        #self.connect(btn_save,SIGNAL("clicked()"),self,SLOT("accept()"))
        btn_save.setFixedWidth(50)
        btn_save.clicked.connect(self.SaveForm)
        layout.addWidget(btn_save)

        btn_cancel = QPushButton(u'取消')
        btn_cancel.setFixedWidth(50)
        btn_cancel.clicked.connect(self.Cancel)
        layout.addWidget(btn_cancel)

        btn_close = QPushButton(u'关闭')
        btn_close.setFixedWidth(50)
        btn_close.clicked.connect(self.Close)
        layout.addWidget(btn_close)

        self.horizontalGroupBox.setLayout(layout)
        pass

    def Cancel(self):
        pass

    def Close(self,event):
        #self.emit(SIGNAL('closeEmitApp()'))
        self.close()
        pass
    #-----------------保存-----------------------------
    def SaveForm(self):
        if 'Project' == Edit.module:
            self.SaveProejct()
        elif 'Bug' == Edit.module:
            self.SaveBug()
        elif 'Admin' == Edit.module:
            self.SaveAdmin()
        elif 'Role' == Edit.module:
            self.SaveRole()
        elif 'Part' == Edit.module:
            self.SavePart()
        elif 'Resume' == Edit.module:
            self.SaveResume()
        elif 'Positionhr' == Edit.module:
            self.SavePositionhr()
        pass

    #保存项目
    def SaveProejct(self):
        data={'number':'','name':'','description':'','create':0}
        where={'id':0}
        mem_data={'project_id':0,'admin_id':[]}
        mod_data={'project_id':0,'name':[]}
        my_business = business()

        #组装数据
        data['number']        = urllib.quote(str(self.number.text()))
        data['name']          = urllib.quote(str(self.name.text()))
        data['description']  = urllib.quote(str(self.description.toPlainText()))
        data['create']        = get_cur_admin_id()

        where['id'] = self.id
        mem_data['project_id'] = self.id
        mod_data['project_id'] = self.id

        #项目成员
        mem_data['admin_id'] = self.project_mem.text()

        #项目模块
        tmp_mod_data_name_list = self.project_mod.text()
        mod_data_name_list = []
        for item in tmp_mod_data_name_list:
            mod_data_name_list.append(urllib.quote(item))
        mod_data['name'] = mod_data_name_list


        (status,content) = my_business.update_project(data,where,mem_data,mod_data)
        if status:
            Edit.message = content
            Edit.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
            return True
        else:
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'错误',content)
            return False

    #保存bug
    def SaveBug(self):
        data={'number':'','title':'','level':0,'status':0,'project_id':0,'project_mod_id':0,
            'get_member':0,'description':'','put_member':0}
        where = {'id':0}
        my_business = business()

        #组装数据
        data['number']        = urllib.quote(str(self.number.text()))
        data['title']         = urllib.quote(str(self.title))
        data['level']         = urllib.quote(str(self.level.itemData(self.level.currentIndex()).toPyObject()))

        data['status']          = urllib.quote(str(self.status.itemData(self.status.currentIndex()).toPyObject()))
        data['project_id']      = urllib.quote(str(self.project_id.itemData(self.project_id.currentIndex()).toPyObject()))
        data['project_mod_id'] = urllib.quote(str(self.project_mod_id.itemData(self.project_mod_id.currentIndex()).toPyObject()))
        data['get_member']      = urllib.quote(str(self.get_member.itemData(self.get_member.currentIndex()).toPyObject()))
        time.sleep(2)
        data['description']  =  base64.b64encode(self.description.text())
        data['put_member']   = get_cur_admin_id()

        where['id'] = self.id

        (status,content) = my_business.update_bug(data,where)
        if status:
            Edit.message = content
            Edit.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
            return True
        else:
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'错误',content)
            return False

    #保存用户
    def SaveAdmin(self):
        data={'number':0,'admin_name':'','passwd':'','re_passwd':'','name':'','status':0,'part':0,'role':0}
        where={'id':0}
        my_business = business()

        #组装数据
        data['number']     = urllib.quote(str(self.number.text()))
        data['admin_name'] = urllib.quote(str(self.user_name.text()))
        data['passwd']    = urllib.quote(str(self.passwd.text()))
        data['re_passwd'] = urllib.quote(str(self.re_passwd.text()))
        data['name']       = urllib.quote(str(self.name.text()))
        data['status']     = 0
        data['part']       = 1
        data['role']       = 2
        #data['position']   = 1

        where['id']        = self.id

        if '' != data['passwd']:
            if data['passwd'] != data['re_passwd']:
                content = u'两次密码不一致'
                Edit.message = content
                Edit.status = False
                self.parent.set_message(u'警告',content)
                return False
            #修改密码
            tmp_data = {'admin_name':'','passwd':''}
            tmp_data['admin_name'] = data['admin_name']
            tmp_data['passwd']     = data['passwd']
            (tmp_status,tmp_content) = my_business.update_admin_passwd(tmp_data)
            if not tmp_status:
                Edit.message = tmp_content
                Edit.status = False
                self.parent.set_message(u'警告',tmp_content)
                return False
            data.pop('passwd')
        else:
            data.pop('passwd')

        data.pop('re_passwd')
        (status,content) = my_business.update_admin(data,where)

        if status:
            Edit.message = content
            Edit.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
            return True
        else:
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'错误',content)

    #保存角色
    def SaveRole(self):
        data={'number':'','name':'','resource':0}
        where={'id':0}
        my_business = business()

        #组装数据
        data['number']   = urllib.quote(str(self.number.text()))
        data['name']     = urllib.quote(str(self.name.text()))
        data['resource'] = urllib.quote(str(self.resource.text()))

        where['id'] = self.id

        (status,content) = my_business.update_role(data,where)
        print 'content:%s'%content
        if status:
            Edit.message = content
            Edit.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
            return True
        else:
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'错误',content)

    #保存部门
    def SavePart(self):
        data={'number':'','name':'','create':0}
        where={'id':0}
        my_business = business()

        #组装数据
        data['number'] = urllib.quote(str(self.number.text()))
        data['name']   = urllib.quote(str(self.name.text()))
        data['create'] = get_cur_admin_id()

        where['id'] = self.id

        (status,content) = my_business.update_part(data,where)
        print 'content:%s'%content
        if status:
            Edit.message = content
            Edit.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
            return True
        else:
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'错误',content)
        pass

    #保存简历
    def SaveResume(self):
        data={'number':'','candidates':'','telephone':'','position_id':0,'part_id':0,'accessories':0,'remartk':'','create':0}
        where = {'id':0}
        my_business = business()
        #组装数据
        data['number']      = urllib.quote(str(self.number.text()))
        data['candidates']  = urllib.quote(str(self.candidates.text()))
        data['telephone']   = urllib.quote(str(self.telephone.text()))
        data['position_id'] = 1
        data['part_id']     = 1

        #附件
        if self.accessories.filename != "":
            (status,content) = my_business.file_upload(str(self.accessories.filename))
            if status:
                data['accessories'] = int(content['content']['id'])
            else:
                Edit.message = content
                Edit.status = False
                self.parent.set_message(u'错误',content)
                return False
        else:
            data.pop('accessories')

        data['remartk']      = urllib.quote(str(self.remark.toPlainText()))
        data['create']      = get_cur_admin_id()

        where['id'] = self.id

        (status,content) = my_business.update_resume(data,where)
        print 'content:%s'%content
        if status:
            Edit.message = content
            Edit.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
            return True
        else:
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'错误',content)

    #保存简历岗位
    def SavePositionhr(self):
        data={'part_id':0,'name':'','description':'','create':0}
        where = {'id':0}
        my_business = business()

        #组装数据
        data['part_id'] = 2
        data['description'] = urllib.quote(str(self.description.toPlainText()))
        data['name']   = urllib.quote(str(self.name.text()))
        data['create'] = get_cur_admin_id()

        where['id'] = self.id

        (status,content) = my_business.update_positionhr(data,where)
        print 'content:%s'%content
        if status:
            Edit.message = content
            Edit.status = True
            self.parent.set_message(u'提示',content)
            self.accept()
            return True
        else:
            Edit.message = content
            Edit.status = False
            self.parent.set_message(u'错误',content)