def delete_item(self): try: selcted_item = self.table_view.get_selected_item() # {'idx':selected_index.row(), 'item':title} TitleDao.instance().delete_item(dto=selcted_item['item']) self.table_view.delete_item(selcted_item['idx']) except Exception as err: raise err
def test_TitleDao(self): dao = TitleDao('wencai_title.json') dao.load_title() titles = dao.load_title() assert (titles.has_key('prefix')) assert (titles.has_key('title')) assert (titles.has_key('indicator')) assert (titles.has_key('header')) assert (isinstance(titles['prefix'], unicode)) assert (isinstance(titles['title'], dict)) assert (isinstance(titles['indicator'], list)) assert (isinstance(titles['header'], list))
def test_TitleDao(self): dao = TitleDao('wencai_title.json') dao.load_title() titles = dao.load_title() assert(titles.has_key('prefix')) assert(titles.has_key('title')) assert(titles.has_key('indicator')) assert(titles.has_key('header')) assert(isinstance(titles['prefix'],unicode)) assert(isinstance(titles['title'],dict)) assert(isinstance(titles['indicator'],list)) assert(isinstance(titles['header'],list))
def create_title_ctrl(self, wrapper_id): setting = self.setting path = setting['title_path'][wrapper_id] dao = TitleDao(path) ctrl = TitleCtrl(dao) return ctrl
def add_item(self): title = self.title_item.get_item() if self.add_btn.text() == '추가': try: TitleDao.instance().insert_item(dto=title) self.table_view.add_item(title) self.title_item.clear_line_edit() except Exception as err: raise err else: try: TitleDao.instance().update_item(dto=title) self.table_view.update_item(self.set_table_idx, title) self.add_btn.setText('추가') self.title_item.clear_line_edit() except Exception as err: raise err
def execAddOrUpdate(self): print('execAddOrUpdate') title = self.title_item.get_item() if self.ui.btn_add.text() == '추가': try: TitleDao.instance().insert_item(dto=title) self.table_view.add_item(title) self.title_item.clear_line_edit() except Exception as err: raise err else: try: TitleDao.instance().update_item(dto=title) self.table_view.update_item(self.set_table_idx, title) self.ui.btn_add.setText('추가') self.title_item.clear_line_edit() except Exception as err: raise err
def test_TitleCtrl(self): dao = TitleDao('wencai_title.json') ctrl = TitleCtrl(dao) title_list = ctrl.get_title_list() if not isinstance(title_list, list): raise Exception('title_list is not a list') for item in title_list: if not isinstance(item, unicode): raise Exception('title_list item is not a str') indicator_title_list = ctrl.get_indicator_title_list() if not isinstance(indicator_title_list, list): raise Exception('indicator_title_list is not a list') for item in indicator_title_list: if not isinstance(item, unicode): raise Exception('indicator_title_list item is not a str') header_list = ctrl.get_header_list() if not isinstance(header_list, list): raise Exception('header_list is not a list') for item in header_list: if not isinstance(item, unicode): raise Exception('header_list item is not a str') header_title_list = ctrl.get_header_title_list() if not isinstance(header_title_list, list): raise Exception('header_title_list is not a list') for item in header_title_list: if not isinstance(item, unicode): raise Exception('header_title_list item is not a str') indicator_id_list = ctrl.get_indicator_id_list() if not isinstance(indicator_id_list, list): raise Exception('indicator_id_list is not a list') for item in indicator_id_list: if not isinstance(item, unicode): raise Exception('indicator_id_list item is not a str') id_list = ctrl.get_id_list() if not isinstance(id_list, list): raise Exception('id_list is not a list') for item in id_list: if not isinstance(item, unicode): raise Exception('id_list item is not a str') title_dict = ctrl.get_title_dict() if not isinstance(title_dict, dict): raise Exception('title_dict is not a dict') indicator_dict = ctrl.get_indicator_dict() if not isinstance(indicator_dict, dict): raise Exception('indicator_dict is not a dict') prefix = ctrl.get_prefix() self.assertEqual('wencai', prefix)
def __init__(self, parent=None): super(EmployeeContent, self).__init__(parent) ui_path = pkg_resources.resource_filename('ui', 'designer/content_employee.ui') self.ui = uic.loadUi(ui_path, self) self.ui.de_hire_date.setDate(QDate.currentDate()) self.title_list = TitleDao.instance().select_item() title_name_list = [title.title_name for title in self.title_list] self.ui.cb_title.addItems(title_name_list) self.ui.cb_title.setCurrentIndex(-1) self.dept_list = DepartmentDao.instance().select_item() dept_name_list = [dept.dept_name for dept in self.dept_list] self.ui.cb_dept.addItems(dept_name_list) self.ui.cb_dept.setCurrentIndex(-1) self.ui.cb_dept.currentTextChanged.connect(self.on_cmb_dept_changed) self.ui.le_pass1.textChanged.connect(self.passwd_valid_check) self.ui.le_pass2.textChanged.connect(self.passwd_valid_check) self.ui.lbl_img.mousePressEvent = self.file_open
from dao.abs_dao import iter_row from dao.title_dao import TitleDao from dbconnection.db_pool import DatabasePool, Config if __name__ == '__main__': # app = QApplication([]) # d = DepartmentTableViewWidget() # t = TitleTableViewWidget() # app.exec() tdao = TitleDao() # tdao.select_item() # tdao.insert_item(6, 'μΈν΄') config = Config('resources/user_properties.ini') with DatabasePool.get_instance(config) as conn: cursor = conn.cursor() sql = "SELECT title_no, title_name FROM title" cursor.execute(sql) res = [] [res.append(row) for row in iter_row(cursor, 5)] print(res) config = Config('resources/user_properties.ini') with DatabasePool.get_instance(config) as conn: print("conn", conn) DatabasePool.pool_close()
def get_data(self): return [tuple(title) for title in TitleDao.instance().select_item()]
def init_component(self, root_layout): item_size = QSize(150, 40) self.file_name = pkg_resources.resource_filename('resources', 'no_img.png') self.lbl_no = QLabel('사원 번호', self) self.lbl_no.setAlignment(Qt.AlignCenter) self.lbl_no.setMinimumSize(item_size) self.le_no = QLineEdit() self.le_no.setMinimumSize(item_size) self.lbl_name = QLabel('사원명', self) self.lbl_name.setAlignment(Qt.AlignCenter) self.lbl_name.setMinimumSize(item_size) self.le_name = QLineEdit() self.le_name.setMinimumSize(item_size) self.lbl_gender = QLabel('성별', self) self.lbl_gender.setAlignment(Qt.AlignCenter) self.lbl_gender.setMinimumSize(item_size) layout_gender = QHBoxLayout() self.rb_male = QRadioButton('남', self) self.rb_male.setChecked(True) # self.rb_male.setMinimumSize(item_size) layout_gender.addWidget(self.rb_male) self.rb_female = QRadioButton('여', self) # self.rb_female.setMinimumSize(item_size) layout_gender.addWidget(self.rb_female) btn_group = QButtonGroup() btn_group.addButton(self.rb_male) btn_group.addButton(self.rb_female) # layout_gender.setContentsMargins(10, 0, 10, 0) #직속상사 self.lbl_manager = QLabel('직속 상사', self) self.lbl_manager.setAlignment(Qt.AlignCenter) self.lbl_manager.setMinimumSize(item_size) self.cb_manager = QComboBox(self) self.cb_manager.setMinimumSize(item_size) self.cb_manager.setCurrentIndex(-1) # 급여 self.lbl_salary = QLabel('급여', self) self.lbl_salary.setAlignment(Qt.AlignCenter) self.lbl_salary.setMinimumSize(item_size) self.sp_salary = QSpinBox() self.sp_salary.setMinimumSize(item_size) self.sp_salary.setRange(1500000, 5000000) self.sp_salary.setSingleStep(100000) self.sp_salary.setGroupSeparatorShown(True); self.sp_salary.setAlignment(Qt.AlignRight) echo_group = QGroupBox('사원', self) #부서 self.lbl_dept = QLabel('부서', self) self.lbl_dept.setAlignment(Qt.AlignCenter) self.lbl_dept.setMinimumSize(item_size) self.cb_dept = QComboBox(self) self.cb_dept.setMinimumSize(item_size) self.dept_list = DepartmentDao.instance().select_item() dept_name_list = [dept.dept_name for dept in self.dept_list] self.cb_dept.addItems(dept_name_list) self.cb_dept.setCurrentIndex(-1) # 입사일 self.lbl_hire_date = QLabel('입사일', self) self.lbl_hire_date.setAlignment(Qt.AlignCenter) self.lbl_hire_date.setMinimumSize(item_size) self.de_hire_date = QDateEdit(self) self.de_hire_date.setMinimumSize(item_size) self.de_hire_date.setDate(QDate.currentDate()) self.de_hire_date.setMinimumDate(QDate(1900, 1, 1)) self.de_hire_date.setMaximumDate(QDate(2100, 12, 31)) self.de_hire_date.setDisplayFormat('yyyy-MM-dd') self.de_hire_date.setAlignment(Qt.AlignCenter) # 직책 self.lbl_title = QLabel('직책', self) self.lbl_title.setAlignment(Qt.AlignCenter) self.lbl_title.setMinimumSize(item_size) self.cb_title = QComboBox(self) self.cb_title.setMinimumSize(item_size) self.title_list = TitleDao.instance().select_item() title_name_list = [title.title_name for title in self.title_list] self.cb_title.addItems(title_name_list) self.cb_title.setCurrentIndex(-1) #비밀번호 self.lbl_pass1 = QLabel('비밀 번호', self) self.lbl_pass1.setAlignment(Qt.AlignCenter) self.lbl_pass1.setMinimumSize(item_size) self.le_pass1 = QLineEdit() self.le_pass1.setEchoMode(QLineEdit.Password) self.le_pass1.setMinimumSize(item_size) self.lbl_pass2 = QLabel('비밀 번호 확인', self) self.lbl_pass2.setAlignment(Qt.AlignCenter) self.lbl_pass2.setMinimumSize(item_size) self.le_pass2 = QLineEdit() self.le_pass2.setEchoMode(QLineEdit.Password) self.le_pass2.setMinimumSize(item_size) self.lbl_pass_confirm = QLabel('', self) self.lbl_pass_confirm.setStyleSheet('color: red') self.lbl_pass_confirm.setAlignment(Qt.AlignCenter) self.lbl_pass_confirm.setMinimumSize(item_size) #사진 self.lbl_img = QLabel() self.lbl_img.setMinimumSize(QSize(200, 275)) self.lbl_img.setAlignment(Qt.AlignCenter) self.lbl_img.setFrameShape(QFrame.Box) self.lbl_img.setFrameShadow(QFrame.Sunken) pixmap = QPixmap(self.file_name) self.lbl_img.setPixmap(pixmap.scaled(150, 275, Qt.KeepAspectRatio)) self.btn_pic = QPushButton('사진 추가') self.btn_pic.setMinimumSize(item_size) group_layout = QGridLayout() echo_group.setLayout(group_layout) group_layout.addWidget(self.lbl_no, 0, 0, 1, 1) group_layout.addWidget(self.le_no, 0, 1, 1, 1) group_layout.addWidget(self.lbl_name, 1, 0, 1, 1) group_layout.addWidget(self.le_name, 1, 1, 1, 1) group_layout.addWidget(self.lbl_salary, 2, 0, 1, 1) group_layout.addWidget(self.sp_salary, 2, 1, 1, 1) group_layout.addWidget(self.lbl_pass1, 3, 0, 1, 1) group_layout.addWidget(self.le_pass1, 3, 1, 1, 1) group_layout.addWidget(self.lbl_pass2, 4, 0, 1, 1) group_layout.addWidget(self.le_pass2, 4, 1, 1, 1) group_layout.addWidget(self.lbl_pass_confirm, 5, 1, 1, 1) group_layout.addWidget(self.lbl_hire_date, 0, 2, 1, 1) group_layout.addWidget(self.de_hire_date, 0, 3, 1, 1) group_layout.addWidget(self.lbl_gender, 1, 2, 1, 1) group_layout.addLayout(layout_gender, 1, 3, 1, 1) group_layout.addWidget(self.lbl_dept, 2, 2, 1, 1) group_layout.addWidget(self.cb_dept, 2, 3, 1, 1) group_layout.addWidget(self.lbl_manager, 3, 2, 1, 1) group_layout.addWidget(self.cb_manager, 3, 3, 1, 1) group_layout.addWidget(self.lbl_title, 4, 2, 1, 1) group_layout.addWidget(self.cb_title, 4, 3, 1, 1) group_layout.addWidget(self.lbl_img, 0, 5, 4, 1) group_layout.addWidget(self.btn_pic, 4, 5, 1, 1) horizontalSpacer = QSpacerItem(150, 40, QSizePolicy.Expanding, QSizePolicy.Minimum) group_layout.addItem(horizontalSpacer, 0, 4, 1, 1) self.cb_dept.currentTextChanged.connect(self.on_cmb_dept_changed) self.le_pass1.textChanged.connect(self.passwd_valid_check) self.le_pass2.textChanged.connect(self.passwd_valid_check) self.btn_pic.clicked.connect(self.file_open) root_layout.addWidget(echo_group)