迁移 修改metadata

This commit is contained in:
weiye.wang 2024-04-25 23:39:33 +08:00
parent 8613d6c338
commit df227eedb7
4 changed files with 148 additions and 1 deletions

View File

@ -0,0 +1,41 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file '修改metadata.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, QPushButton, QSizePolicy, QWidget)
class Ui_Form(object):
def setupUi(self, Form):
if not Form.objectName():
Form.setObjectName(u"Form")
Form.resize(760, 490)
self.pushButton_exec = QPushButton(Form)
self.pushButton_exec.setObjectName(u"pushButton_exec")
self.pushButton_exec.setGeometry(QRect(220, 190, 321, 101))
font = QFont()
font.setBold(True)
self.pushButton_exec.setFont(font)
self.retranslateUi(Form)
QMetaObject.connectSlotsByName(Form)
# setupUi
def retranslateUi(self, Form):
Form.setWindowTitle(QCoreApplication.translate("Form", u"\u4fee\u6539metadata", None))
self.pushButton_exec.setText(QCoreApplication.translate("Form", u"\u4fee\u6539metadata", None))
# retranslateUi

View File

@ -23,6 +23,7 @@ from 统考数据导入 import MyWindow_tkdr
from 手动统计结果导入 import MyWindow_sddr
from 获取小闲平台使用数据 import MyWindow_xxdr
from 题目内容直接编辑 import MyWindow_bjtm
from 修改metadata import MyWindow_tjzd
from database_tools_2 import *
class MyWindow(QMainWindow,Ui_MainWindow):
@ -50,6 +51,10 @@ class MyWindow(QMainWindow,Ui_MainWindow):
self.tjgl = MyWindow_tjgl(self.database)
self.layout_tjgl.addWidget(self.tjgl) #以上三行为初始化“添加关联”tab
self.layout_tjzd = QVBoxLayout(self.tab_tjzd)
self.tjzd = MyWindow_tjzd(self.database)
self.layout_tjzd.addWidget(self.tjzd) #以上三行为初始化“编辑题目”tab
self.layout_bjtm = QVBoxLayout(self.tab_bjtm)
self.bjtm = MyWindow_bjtm(self.database)
self.layout_bjtm.addWidget(self.bjtm) #以上三行为初始化“编辑题目”tab
@ -141,7 +146,8 @@ class MyWindow(QMainWindow,Ui_MainWindow):
self.tjjc.setdbname,
self.gxsy.setdbname,
self.dygg.setdbname,
self.bjtm.setdbname
self.bjtm.setdbname,
self.tjzd.setdbname
]: #在列表中的tab里传送数据库名的连接
self.sendDBname.connect(func)
def sendValue(self):

View File

@ -0,0 +1,63 @@
from PySide6.QtWidgets import QWidget, QApplication, QFileDialog
from Ui_修改metadata import Ui_Form
import os
from database_tools_2 import *
class MyWindow_tjzd(QWidget,Ui_Form):
def __init__(self,database_name):
super().__init__()
self.database_name = database_name
self.setupUi(self)
self.bind()
def setdbname(self,string):
self.database_name = string
# print(self.database_name)
def bind(self):
self.metadatafilepath = "文本文件/metadata.txt"
self.pushButton_exec.clicked.connect(self.exec)
def exec(self):
mydb = connect(hostname = db_host, port = db_port, username=db_user, pwd=db_pwd, db = self.database_name)
changedids = ImportMetadata(mydb,self.metadatafilepath)
print(changedids)
if len(changedids) > 0:
mycursor = mydb.cursor()
configjson = BuildFullScheme
latexbody = "\\begin{enumerate}\n\n"
for id in sorted(list(set(changedids))):
latexbody += generateLaTeXBodyContentfromMariaDB(mycursor,id,configjson) + "\n\n"
latexbody += "\\end{enumerate}"
latex_raw = ReadTextFile("模板文件/讲义模板.txt")
if configjson["教师版"] == True:
latex_raw = latex_raw.replace(r"学号\blank{50} \ 姓名\blank{80}","上海市控江中学")
if sys.platform != "win32": #非win系统用默认字体
latex_raw = re.sub(r"fontset[\s]*=[\s]*none","fontset = fandol",latex_raw)
latex_raw = re.sub(r"\\setCJKmainfont",r"% \\setCJKmainfont",latex_raw)
latex_data = StringSubstitute(r"<<[\s\S]*?待替换[\s\S]*?>>",latex_raw,("试编译",latexbody)) #替换标题和bodystring
outputdir = os.path.join(os.getcwd(),"临时文件")
outputfilepath = os.path.join(outputdir,"试编译.tex")
SaveTextFile(latex_data,outputfilepath)
if XeLaTeXCompile(outputdir,"试编译.tex",times=1):
print("修改后检验成功, 已导入数据库.")
mydb.commit()
else:
print("修改后检验失败, 已回滚.")
mydb.rollback()
else:
print("未作修改.")
mydb.commit()
mydb.close()

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>760</width>
<height>490</height>
</rect>
</property>
<property name="windowTitle">
<string>修改metadata</string>
</property>
<widget class="QPushButton" name="pushButton_exec">
<property name="geometry">
<rect>
<x>220</x>
<y>190</y>
<width>321</width>
<height>101</height>
</rect>
</property>
<property name="font">
<font>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>修改metadata</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>