Example #1
0
 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
Example #2
0
 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))
Example #3
0
 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))
Example #4
0
    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
Example #6
0
 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
Example #7
0
 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
Example #9
0
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()]
Example #11
0
    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)