diff --git a/工具v4/Ui_tool_panel.py b/工具v4/Ui_tool_panel.py index 632a9fd0..3860064c 100644 --- a/工具v4/Ui_tool_panel.py +++ b/工具v4/Ui_tool_panel.py @@ -142,6 +142,9 @@ class Ui_MainWindow(object): self.tab_xgmb = QWidget() self.tab_xgmb.setObjectName(u"tab_xgmb") self.tabWidget_mubiaojichu.addTab(self.tab_xgmb, "") + self.tab_scgx = QWidget() + self.tab_scgx.setObjectName(u"tab_scgx") + self.tabWidget_mubiaojichu.addTab(self.tab_scgx, "") self.tabWidget_main.addTab(self.tab_mubiaojichu, "") self.tab_syjl = QWidget() self.tab_syjl.setObjectName(u"tab_syjl") @@ -196,13 +199,13 @@ class Ui_MainWindow(object): self.retranslateUi(MainWindow) - self.tabWidget_main.setCurrentIndex(0) - self.tabWidget_luru.setCurrentIndex(0) + self.tabWidget_main.setCurrentIndex(5) + self.tabWidget_luru.setCurrentIndex(2) self.tabWidget_weihu.setCurrentIndex(3) self.tabWidget_shiyong.setCurrentIndex(1) self.tabWidget_beikezu.setCurrentIndex(2) self.tabWidget_latex.setCurrentIndex(1) - self.tabWidget_mubiaojichu.setCurrentIndex(2) + self.tabWidget_mubiaojichu.setCurrentIndex(3) self.tabWidget_syjl.setCurrentIndex(5) @@ -233,9 +236,10 @@ class Ui_MainWindow(object): self.tabWidget_latex.setTabText(self.tabWidget_latex.indexOf(self.tab_wbzh), QCoreApplication.translate("MainWindow", u"\u6587\u672c\u8f6c\u6362\u5904\u7406", None)) self.tabWidget_latex.setTabText(self.tabWidget_latex.indexOf(self.tab_hist), QCoreApplication.translate("MainWindow", u"\u76f4\u65b9\u56fe\u4ee3\u7801\u751f\u6210", None)) self.tabWidget_main.setTabText(self.tabWidget_main.indexOf(self.tab_latex), QCoreApplication.translate("MainWindow", u"LaTeX\u4ee3\u7801\u76f8\u5173", None)) - self.tabWidget_mubiaojichu.setTabText(self.tabWidget_mubiaojichu.indexOf(self.tab_tjjc), QCoreApplication.translate("MainWindow", u"\u65b0\u589e\u57fa\u7840\u77e5\u8bc6\u68b3\u7406", None)) - self.tabWidget_mubiaojichu.setTabText(self.tabWidget_mubiaojichu.indexOf(self.tab_bjjc), QCoreApplication.translate("MainWindow", u"\u57fa\u7840\u77e5\u8bc6\u7f16\u8f91", None)) - self.tabWidget_mubiaojichu.setTabText(self.tabWidget_mubiaojichu.indexOf(self.tab_xgmb), QCoreApplication.translate("MainWindow", u"\u4fee\u6539\u76ee\u6807\u6587\u672c", None)) + self.tabWidget_mubiaojichu.setTabText(self.tabWidget_mubiaojichu.indexOf(self.tab_tjjc), QCoreApplication.translate("MainWindow", u"\u65b0\u589e\u57fa\u7840", None)) + self.tabWidget_mubiaojichu.setTabText(self.tabWidget_mubiaojichu.indexOf(self.tab_bjjc), QCoreApplication.translate("MainWindow", u"\u57fa\u7840\u7f16\u8f91", None)) + self.tabWidget_mubiaojichu.setTabText(self.tabWidget_mubiaojichu.indexOf(self.tab_xgmb), QCoreApplication.translate("MainWindow", u"\u4fee\u6539\u76ee\u6807", None)) + self.tabWidget_mubiaojichu.setTabText(self.tabWidget_mubiaojichu.indexOf(self.tab_scgx), QCoreApplication.translate("MainWindow", u"\u5220\u9664\u76ee\u6807\u5173\u7cfb", None)) self.tabWidget_main.setTabText(self.tabWidget_main.indexOf(self.tab_mubiaojichu), QCoreApplication.translate("MainWindow", u"\u76ee\u6807\u4e0e\u57fa\u7840\u77e5\u8bc6", None)) self.tabWidget_syjl.setTabText(self.tabWidget_syjl.indexOf(self.tab_xxdr), QCoreApplication.translate("MainWindow", u"\u5c0f\u95f2\u5bfc\u5165", None)) self.tabWidget_syjl.setTabText(self.tabWidget_syjl.indexOf(self.tab_sddr), QCoreApplication.translate("MainWindow", u"\u624b\u52a8\u5bfc\u5165", None)) diff --git a/工具v4/Ui_删除课时目标关系.py b/工具v4/Ui_删除课时目标关系.py new file mode 100644 index 00000000..9c0758c1 --- /dev/null +++ b/工具v4/Ui_删除课时目标关系.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- + +################################################################################ +## Form generated from reading UI file '删除课时目标关系.ui' +## +## Created by: Qt User Interface Compiler version 6.6.2 +## +## WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, + QMetaObject, QObject, QPoint, QRect, + QSize, QTime, QUrl, Qt) +from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, + QFont, QFontDatabase, QGradient, QIcon, + QImage, QKeySequence, QLinearGradient, QPainter, + QPalette, QPixmap, QRadialGradient, QTransform) +from PySide6.QtWidgets import (QApplication, QHeaderView, QLabel, QLineEdit, + QPlainTextEdit, QPushButton, QSizePolicy, QTableWidget, + QTableWidgetItem, QWidget) + +class Ui_Form(object): + def setupUi(self, Form): + if not Form.objectName(): + Form.setObjectName(u"Form") + Form.resize(760, 490) + self.label = QLabel(Form) + self.label.setObjectName(u"label") + self.label.setGeometry(QRect(10, 20, 54, 16)) + self.lineEdit_objid = QLineEdit(Form) + self.lineEdit_objid.setObjectName(u"lineEdit_objid") + self.lineEdit_objid.setGeometry(QRect(52, 20, 141, 20)) + self.plainTextEdit_objs = QPlainTextEdit(Form) + self.plainTextEdit_objs.setObjectName(u"plainTextEdit_objs") + self.plainTextEdit_objs.setGeometry(QRect(10, 50, 371, 411)) + self.pushButton_getobj = QPushButton(Form) + self.pushButton_getobj.setObjectName(u"pushButton_getobj") + self.pushButton_getobj.setGeometry(QRect(200, 20, 181, 24)) + self.label_2 = QLabel(Form) + self.label_2.setObjectName(u"label_2") + self.label_2.setGeometry(QRect(390, 20, 54, 16)) + self.tableWidget_prec = QTableWidget(Form) + if (self.tableWidget_prec.columnCount() < 3): + self.tableWidget_prec.setColumnCount(3) + __qtablewidgetitem = QTableWidgetItem() + self.tableWidget_prec.setHorizontalHeaderItem(0, __qtablewidgetitem) + __qtablewidgetitem1 = QTableWidgetItem() + self.tableWidget_prec.setHorizontalHeaderItem(1, __qtablewidgetitem1) + __qtablewidgetitem2 = QTableWidgetItem() + self.tableWidget_prec.setHorizontalHeaderItem(2, __qtablewidgetitem2) + self.tableWidget_prec.setObjectName(u"tableWidget_prec") + self.tableWidget_prec.setGeometry(QRect(390, 40, 351, 171)) + self.label_3 = QLabel(Form) + self.label_3.setObjectName(u"label_3") + self.label_3.setGeometry(QRect(390, 220, 54, 16)) + self.tableWidget_post = QTableWidget(Form) + if (self.tableWidget_post.columnCount() < 3): + self.tableWidget_post.setColumnCount(3) + __qtablewidgetitem3 = QTableWidgetItem() + self.tableWidget_post.setHorizontalHeaderItem(0, __qtablewidgetitem3) + __qtablewidgetitem4 = QTableWidgetItem() + self.tableWidget_post.setHorizontalHeaderItem(1, __qtablewidgetitem4) + __qtablewidgetitem5 = QTableWidgetItem() + self.tableWidget_post.setHorizontalHeaderItem(2, __qtablewidgetitem5) + self.tableWidget_post.setObjectName(u"tableWidget_post") + self.tableWidget_post.setGeometry(QRect(390, 240, 351, 171)) + self.lineEdit_todelete = QLineEdit(Form) + self.lineEdit_todelete.setObjectName(u"lineEdit_todelete") + self.lineEdit_todelete.setGeometry(QRect(470, 430, 41, 20)) + self.label_4 = QLabel(Form) + self.label_4.setObjectName(u"label_4") + self.label_4.setGeometry(QRect(390, 430, 81, 16)) + self.pushButton_del = QPushButton(Form) + self.pushButton_del.setObjectName(u"pushButton_del") + self.pushButton_del.setGeometry(QRect(520, 430, 101, 24)) + self.pushButton_commit = QPushButton(Form) + self.pushButton_commit.setObjectName(u"pushButton_commit") + self.pushButton_commit.setGeometry(QRect(630, 430, 111, 24)) + font = QFont() + font.setBold(True) + self.pushButton_commit.setFont(font) + self.pushButton_commit.setStyleSheet(u"background-color: rgb(255, 255, 127);") + + self.retranslateUi(Form) + + QMetaObject.connectSlotsByName(Form) + # setupUi + + def retranslateUi(self, Form): + Form.setWindowTitle(QCoreApplication.translate("Form", u"\u8bfe\u65f6\u76ee\u6807\u5173\u7cfb\u7ef4\u62a4", None)) + self.label.setText(QCoreApplication.translate("Form", u"\u76ee\u6807ID", None)) + self.lineEdit_objid.setPlaceholderText(QCoreApplication.translate("Form", u"K*******B \u6216K*******X", None)) + self.pushButton_getobj.setText(QCoreApplication.translate("Form", u"\u83b7\u53d6\u76ee\u6807", None)) + self.label_2.setText(QCoreApplication.translate("Form", u"\u524d\u5e8f\u76ee\u6807", None)) + ___qtablewidgetitem = self.tableWidget_prec.horizontalHeaderItem(0) + ___qtablewidgetitem.setText(QCoreApplication.translate("Form", u"\u7f16\u53f7", None)); + ___qtablewidgetitem1 = self.tableWidget_prec.horizontalHeaderItem(1) + ___qtablewidgetitem1.setText(QCoreApplication.translate("Form", u"ID", None)); + ___qtablewidgetitem2 = self.tableWidget_prec.horizontalHeaderItem(2) + ___qtablewidgetitem2.setText(QCoreApplication.translate("Form", u"\u5185\u5bb9", None)); + self.label_3.setText(QCoreApplication.translate("Form", u"\u540e\u5e8f\u76ee\u6807", None)) + ___qtablewidgetitem3 = self.tableWidget_post.horizontalHeaderItem(0) + ___qtablewidgetitem3.setText(QCoreApplication.translate("Form", u"\u7f16\u53f7", None)); + ___qtablewidgetitem4 = self.tableWidget_post.horizontalHeaderItem(1) + ___qtablewidgetitem4.setText(QCoreApplication.translate("Form", u"ID", None)); + ___qtablewidgetitem5 = self.tableWidget_post.horizontalHeaderItem(2) + ___qtablewidgetitem5.setText(QCoreApplication.translate("Form", u"\u5185\u5bb9", None)); + self.label_4.setText(QCoreApplication.translate("Form", u"\u6b32\u5220\u9664\u7684\u7f16\u53f7", None)) + self.pushButton_del.setText(QCoreApplication.translate("Form", u"\u9884\u5220\u9664", None)) + self.pushButton_commit.setText(QCoreApplication.translate("Form", u"\u63d0\u4ea4(\u4e0d\u53ef\u9006)", None)) + # retranslateUi + diff --git a/工具v4/tool_panel.py b/工具v4/tool_panel.py index 1eba3b4e..6555b790 100644 --- a/工具v4/tool_panel.py +++ b/工具v4/tool_panel.py @@ -27,6 +27,7 @@ from 修改metadata import MyWindow_tjzd from 基础知识编辑 import MyWindow_bjjc from 修改目标内容 import MyWindow_xgmb from 删除使用记录 import MyWindow_scjl +from 删除课时目标关系 import MyWindow_scgx from database_tools_2 import * class MyWindow(QMainWindow,Ui_MainWindow): @@ -145,7 +146,11 @@ class MyWindow(QMainWindow,Ui_MainWindow): self.layout_scjl = QVBoxLayout(self.tab_scjl) self.scjl = MyWindow_scjl(self.database) - self.layout_scjl.addWidget(self.scjl) #以上三行为初始化"修改目标文本"tab + self.layout_scjl.addWidget(self.scjl) #以上三行为初始化"删除使用记录"tab + + self.layout_scgx = QVBoxLayout(self.tab_scgx) + self.scgx = MyWindow_scgx(self.database) + self.layout_scgx.addWidget(self.scgx) #以上三行为初始化"删除课时目标关系"tab @@ -166,7 +171,8 @@ class MyWindow(QMainWindow,Ui_MainWindow): self.bjjc.setdbname, self.wbzh.setdbname, self.xgmb.setdbname, - self.scjl.setdbname + self.scjl.setdbname, + self.scgx.setdbname ]: #在列表中的tab里传送数据库名的连接 self.sendDBname.connect(func) def sendValue(self): diff --git a/工具v4/tool_panel.ui b/工具v4/tool_panel.ui index 80950687..c90a433f 100644 --- a/工具v4/tool_panel.ui +++ b/工具v4/tool_panel.ui @@ -27,7 +27,7 @@ QTabWidget::Triangular - 0 + 5 @@ -49,7 +49,7 @@ QTabWidget::Triangular - 0 + 2 @@ -260,21 +260,26 @@ QTabWidget::Triangular - 2 + 3 - 新增基础知识梳理 + 新增基础 - 基础知识编辑 + 基础编辑 - 修改目标文本 + 修改目标 + + + + + 删除目标关系 diff --git a/工具v4/删除课时目标关系.py b/工具v4/删除课时目标关系.py new file mode 100644 index 00000000..16a1d2f8 --- /dev/null +++ b/工具v4/删除课时目标关系.py @@ -0,0 +1,120 @@ +from PySide6.QtWidgets import QWidget, QApplication, QFileDialog, QTableWidgetItem +from Ui_删除课时目标关系 import Ui_Form +from database_tools_2 import * + +class MyWindow_scgx(QWidget,Ui_Form): + def __init__(self,database_name): + super().__init__() + self.database_name = database_name + self.current_database_name = database_name + self.setupUi(self) + self.bind() + def setdbname(self,string): + self.database_name = string + self.pushButton_del.setDisabled(True) + self.pushButton_commit.setDisabled(True) + try: + self.db.close() + except: + pass + self.db = connect(hostname=db_host, port=db_port, username= db_user, pwd= db_pwd, db=self.database_name) + # print(self.database_name) + def bind(self): + self.tableWidget_prec.setColumnWidth(0,20) + self.tableWidget_prec.setColumnWidth(1,100) + self.tableWidget_prec.setColumnWidth(2,300) + self.tableWidget_post.setColumnWidth(0,20) + self.tableWidget_post.setColumnWidth(1,100) + self.tableWidget_post.setColumnWidth(2,300) + self.pushButton_del.setDisabled(True) + self.pushButton_commit.setDisabled(True) + self.pushButton_getobj.clicked.connect(self.getobj) + self.pushButton_del.clicked.connect(self.delete) + self.pushButton_commit.clicked.connect(self.commit) + self.lineEdit_todelete.textChanged.connect(self.enable_del) + self.db = connect(hostname=db_host, port=db_port, username= db_user, pwd= db_pwd, db=self.database_name) + self.mycursor = self.db.cursor() + self.mycursor.execute("SELECT objid,obj_content FROM lessonobj;") + ret_list = self.mycursor.fetchall() + self.allobjs = "" + for ret in ret_list: + self.allobjs += f"{ret[0]}\t{ret[1]}\n" + self.plainTextEdit_objs.setPlainText(self.allobjs) + def getobj(self): + objid = self.lineEdit_objid.text().strip() + self.mycursor.execute("SELECT objid,obj_content FROM lessonobj WHERE objid = %s;",(objid,)) + ret_list = self.mycursor.fetchall() + if len(ret_list) == 0 or len(ret_list) >= 2: + self.plainTextEdit_objs.setPlainText("目标编号有误, 请重试!!!\n\n"+self.allobjs) + else: + self.objid,self.objcontent = ret_list[0] + self.plainTextEdit_objs.setPlainText(f"{self.objid}\t{self.objcontent}") + count = 0 + self.corresp_list = [] + self.tableWidget_prec.clearContents() + self.tableWidget_prec.setRowCount(0) + self.tableWidget_post.clearContents() + self.tableWidget_post.setRowCount(0) + self.mycursor.execute("SELECT inherit_from FROM objinherit WHERE objid = %s;",(self.objid,)) + ret_list = self.mycursor.fetchall() + for ret in ret_list: + # print(ret) + count += 1 + self.mycursor.execute("SELECT obj_content FROM lessonobj WHERE objid = %s;",(ret[0],)) + prec_content = self.mycursor.fetchall()[0][0] + self.tableWidget_prec.insertRow(count-1) + self.tableWidget_prec.setItem(count-1,0,QTableWidgetItem(str(count))) + self.tableWidget_prec.setItem(count-1,1,QTableWidgetItem(ret[0])) + self.tableWidget_prec.setItem(count-1,2,QTableWidgetItem(prec_content)) + self.corresp_list.append((count,self.objid,ret[0])) + prec_count = count + self.mycursor.execute("SELECT objid FROM objinherit WHERE inherit_from = %s;",(self.objid,)) + ret_list = self.mycursor.fetchall() + count = 0 + for ret in ret_list: + # print(ret) + count += 1 + self.mycursor.execute("SELECT obj_content FROM lessonobj WHERE objid = %s;",(ret[0],)) + post_content = self.mycursor.fetchall()[0][0] + self.tableWidget_post.insertRow(count-1) + self.tableWidget_post.setItem(count-1,0,QTableWidgetItem(str(count+prec_count))) + self.tableWidget_post.setItem(count-1,1,QTableWidgetItem(ret[0])) + self.tableWidget_post.setItem(count-1,2,QTableWidgetItem(post_content)) + self.corresp_list.append((count+prec_count,ret[0],self.objid)) + def enable_del(self): + self.pushButton_del.setEnabled(True) + def delete(self): + self.tableWidget_prec.clearContents() + self.tableWidget_prec.setRowCount(0) + self.tableWidget_post.clearContents() + self.tableWidget_post.setRowCount(0) + index = int(self.lineEdit_todelete.text().strip()) + for item in self.corresp_list: + if item[0] == index: + objid = item[1] + inherit_from = item[2] + break + self.mycursor = self.db.cursor() + self.mycursor.execute("DELETE FROM objinherit WHERE objid = %s AND inherit_from = %s;",(objid,inherit_from)) + sql = "INSERT INTO logs (DATE,TIME,username,action,db_content) VALUE (%s,%s,%s,%s,%s);" + val = (GetDate(),GetTime(),get_git_username(),f"删除目标关联",f"{objid} <- {inherit_from}") + self.mycursor.execute(sql,val) + self.pushButton_commit.setEnabled(True) + def commit(self): + self.db.commit() + self.pushButton_del.setDisabled(True) + self.pushButton_commit.setDisabled(True) + + + + + + + + +if __name__ == '__main__': + app = QApplication([]) + windows = MyWindow_scgx("tikutest") + windows.show() + app.exec() + diff --git a/工具v4/删除课时目标关系.ui b/工具v4/删除课时目标关系.ui new file mode 100644 index 00000000..e96c552c --- /dev/null +++ b/工具v4/删除课时目标关系.ui @@ -0,0 +1,201 @@ + + + Form + + + + 0 + 0 + 760 + 490 + + + + 课时目标关系维护 + + + + + 10 + 20 + 54 + 16 + + + + 目标ID + + + + + + 52 + 20 + 141 + 20 + + + + K*******B 或K*******X + + + + + + 10 + 50 + 371 + 411 + + + + + + + 200 + 20 + 181 + 24 + + + + 获取目标 + + + + + + 390 + 20 + 54 + 16 + + + + 前序目标 + + + + + + 390 + 40 + 351 + 171 + + + + + 编号 + + + + + ID + + + + + 内容 + + + + + + + 390 + 220 + 54 + 16 + + + + 后序目标 + + + + + + 390 + 240 + 351 + 171 + + + + + 编号 + + + + + ID + + + + + 内容 + + + + + + + 470 + 430 + 41 + 20 + + + + + + + 390 + 430 + 81 + 16 + + + + 欲删除的编号 + + + + + + 520 + 430 + 101 + 24 + + + + 预删除 + + + + + + 630 + 430 + 111 + 24 + + + + + true + + + + background-color: rgb(255, 255, 127); + + + 提交(不可逆) + + + + + +