excel2moodle 0.3.1__py3-none-any.whl → 0.3.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -46,6 +46,7 @@ class QuestionDB():
46
46
  self.spreadSheetPath = sheet
47
47
  self.svgFolder = (self.spreadSheetPath.parent / 'Abbildungen_SVG')
48
48
  self.retrieveCategoriesData()
49
+ self.parseAll()
49
50
 
50
51
  def retrieveCategoriesData(self)->None:
51
52
  """Scans through the sheet with the metadata for all the question categories
@@ -225,6 +225,7 @@ class NFMQuestionParser(QuestionParser):
225
225
  self.question.category.maxVariants = number if number <= mvar else mvar
226
226
 
227
227
 
228
+
228
229
  @staticmethod
229
230
  def insertVariablesToBPoints(varDict: dict, bulletPoints: str, index: int)-> str:
230
231
  """
excel2moodle/ui/appUi.py CHANGED
@@ -64,9 +64,9 @@ class MainWindow(QtWidgets.QMainWindow):
64
64
  self.ui.checkBoxIncludeCategories.checkStateChanged.connect(self.setIncludeCategoriesSetting)
65
65
  # self.ui.buttonRefresh.clicked.connect(self.refreshList)
66
66
  self.ui.actionParseAll.triggered.connect(self.onParseAll )
67
+ self.testDB.dataChanged.signal.connect(self.onParseAll)
67
68
  self.ui.buttonSpreadSheet.clicked.connect(self.onButSpreadsheet)
68
69
  self.ui.buttonTestGen.clicked.connect(self.onButGenTest)
69
- self.testDB.dataChanged.signal.connect(self.refreshList)
70
70
  self.ui.actionPreviewQ.triggered.connect(self.previewQ)
71
71
  self.ui.actionDocumentation.triggered.connect(self.onOpenDocumentation)
72
72
  self.settings.shPathChanged.connect(self.onSheetPathChanged)
@@ -110,22 +110,7 @@ class MainWindow(QtWidgets.QMainWindow):
110
110
 
111
111
  logger.info(f'{questions} questions are selected with {count} points')
112
112
  self.ui.pointCounter.setValue(count)
113
-
114
- # val = item.text(2)
115
- # if val == "nan":
116
- # val = 0
117
- # else: val = float(val)
118
- # if item.text(0).startswith('KAT'):
119
- # logger.debug(f'seems to be a Category, doing nothing\n')
120
- # return None
121
- # logger.debug(f'Current Item: {item.text(1)}, is Selected? {item.isSelected()}')
122
- # if item.isSelected():
123
- # count = count + val
124
- # logger.debug(f'Selected, Count up: {count}')
125
- # else:
126
- # count = count - val
127
- # logger.debug(f'unselected, Count down: {count}')
128
-
113
+ self.ui.questionCounter.setValue(questions)
129
114
  return None
130
115
 
131
116
  @QtCore.Slot()
@@ -151,19 +136,6 @@ class MainWindow(QtWidgets.QMainWindow):
151
136
  self.testDB.appendQuestions(selection, self.exportFile)
152
137
  return None
153
138
 
154
- @QtCore.Slot()
155
- def refreshList(self):
156
- logger.info("starting List refresh")
157
- cats = self.testDB.categories
158
- self.ui.treeWidget.clear()
159
- for cat in cats.values():
160
- catItem = CategoryItem(self.ui.treeWidget,cat)
161
- catItem.setFlags(catItem.flags() & ~Qt.ItemIsSelectable)
162
- for q in cat.questions.values():
163
- QuestionItem(catItem,q)
164
- self.setStatus("[OK] Fragen Liste wurde aktualisiert")
165
- self.ui.buttonTestGen.setEnabled(True)
166
-
167
139
  @QtCore.Slot()
168
140
  def onButSpreadsheet(self):
169
141
  file = QtWidgets.QFileDialog.getOpenFileName(self,
@@ -187,9 +159,19 @@ class MainWindow(QtWidgets.QMainWindow):
187
159
  It parses all the Questions found in the spreadsheet and then refreshes the list of questions.
188
160
  If successful it prints out a list of all exported Questions
189
161
  """
162
+ self.ui.buttonTestGen.setEnabled(True)
190
163
  self.testDB.parseAll()
191
164
  self.setStatus("[OK] Alle Fragen wurden erfolgreich in XML-Dateien umgewandelt")
192
- self.refreshList()
165
+ # below is former refres method
166
+ logger.info("starting List refresh")
167
+ cats = self.testDB.categories
168
+ self.ui.treeWidget.clear()
169
+ for cat in cats.values():
170
+ catItem = CategoryItem(self.ui.treeWidget,cat)
171
+ catItem.setFlags(catItem.flags() & ~Qt.ItemIsSelectable)
172
+ for q in cat.questions.values():
173
+ QuestionItem(catItem,q)
174
+ self.setStatus("[OK] Fragen Liste wurde aktualisiert")
193
175
  return None
194
176
 
195
177
  @QtCore.Slot()
@@ -0,0 +1,414 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ ################################################################################
4
+ ## Form generated from reading UI file 'mainWindow.ui'
5
+ ##
6
+ ## Created by: Qt User Interface Compiler version 6.8.3
7
+ ##
8
+ ## WARNING! All changes made in this file will be lost when recompiling UI file!
9
+ ################################################################################
10
+
11
+ from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
12
+ QMetaObject, QObject, QPoint, QRect,
13
+ QSize, QTime, QUrl, Qt)
14
+ from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
15
+ QCursor, QFont, QFontDatabase, QGradient,
16
+ QIcon, QImage, QKeySequence, QLinearGradient,
17
+ QPainter, QPalette, QPixmap, QRadialGradient,
18
+ QTransform)
19
+ from PySide6.QtWidgets import (QAbstractItemView, QAbstractSpinBox, QApplication, QCheckBox,
20
+ QDoubleSpinBox, QFormLayout, QFrame, QHBoxLayout,
21
+ QHeaderView, QLabel, QMainWindow, QMenu,
22
+ QMenuBar, QPushButton, QSizePolicy, QSpacerItem,
23
+ QSpinBox, QStatusBar, QTextEdit, QToolBar,
24
+ QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget)
25
+
26
+ class Ui_MoodleTestGenerator(object):
27
+ def setupUi(self, MoodleTestGenerator):
28
+ if not MoodleTestGenerator.objectName():
29
+ MoodleTestGenerator.setObjectName(u"MoodleTestGenerator")
30
+ MoodleTestGenerator.resize(936, 1198)
31
+ icon = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.DialogQuestion))
32
+ MoodleTestGenerator.setWindowIcon(icon)
33
+ self.actionInput_Spreadsheet = QAction(MoodleTestGenerator)
34
+ self.actionInput_Spreadsheet.setObjectName(u"actionInput_Spreadsheet")
35
+ icon1 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.DocumentOpen))
36
+ self.actionInput_Spreadsheet.setIcon(icon1)
37
+ self.actionOutput_Folder = QAction(MoodleTestGenerator)
38
+ self.actionOutput_Folder.setObjectName(u"actionOutput_Folder")
39
+ self.actionEquationChecker = QAction(MoodleTestGenerator)
40
+ self.actionEquationChecker.setObjectName(u"actionEquationChecker")
41
+ icon2 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.ToolsCheckSpelling))
42
+ self.actionEquationChecker.setIcon(icon2)
43
+ self.actionParseAll = QAction(MoodleTestGenerator)
44
+ self.actionParseAll.setObjectName(u"actionParseAll")
45
+ icon3 = QIcon(QIcon.fromTheme(u"view-refresh"))
46
+ self.actionParseAll.setIcon(icon3)
47
+ self.actionPreviewQ = QAction(MoodleTestGenerator)
48
+ self.actionPreviewQ.setObjectName(u"actionPreviewQ")
49
+ icon4 = QIcon(QIcon.fromTheme(u"document-print-preview"))
50
+ self.actionPreviewQ.setIcon(icon4)
51
+ self.actionAbout = QAction(MoodleTestGenerator)
52
+ self.actionAbout.setObjectName(u"actionAbout")
53
+ icon5 = QIcon(QIcon.fromTheme(u"help-about"))
54
+ self.actionAbout.setIcon(icon5)
55
+ self.actionDocumentation = QAction(MoodleTestGenerator)
56
+ self.actionDocumentation.setObjectName(u"actionDocumentation")
57
+ self.actionDocumentation.setIcon(icon5)
58
+ self.actionSetting = QAction(MoodleTestGenerator)
59
+ self.actionSetting.setObjectName(u"actionSetting")
60
+ icon6 = QIcon(QIcon.fromTheme(u"preferences-system"))
61
+ self.actionSetting.setIcon(icon6)
62
+ self.mainWidget = QWidget(MoodleTestGenerator)
63
+ self.mainWidget.setObjectName(u"mainWidget")
64
+ self.verticalLayout = QVBoxLayout(self.mainWidget)
65
+ self.verticalLayout.setObjectName(u"verticalLayout")
66
+ self.horizontalLayout_2 = QHBoxLayout()
67
+ self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
68
+ self.horizontalLayout_2.setContentsMargins(-1, -1, -1, 14)
69
+ self.verticalLayout_4 = QVBoxLayout()
70
+ self.verticalLayout_4.setObjectName(u"verticalLayout_4")
71
+ self.verticalLayout_4.setContentsMargins(3, -1, -1, -1)
72
+ self.horizontalLayout = QHBoxLayout()
73
+ self.horizontalLayout.setObjectName(u"horizontalLayout")
74
+ self.checkBoxQuestionListSelectAll = QCheckBox(self.mainWidget)
75
+ self.checkBoxQuestionListSelectAll.setObjectName(u"checkBoxQuestionListSelectAll")
76
+
77
+ self.horizontalLayout.addWidget(self.checkBoxQuestionListSelectAll)
78
+
79
+ self.horizontalSpacer_4 = QSpacerItem(20, 10, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Minimum)
80
+
81
+ self.horizontalLayout.addItem(self.horizontalSpacer_4)
82
+
83
+ self.line_4 = QFrame(self.mainWidget)
84
+ self.line_4.setObjectName(u"line_4")
85
+ self.line_4.setFrameShape(QFrame.Shape.VLine)
86
+ self.line_4.setFrameShadow(QFrame.Shadow.Sunken)
87
+
88
+ self.horizontalLayout.addWidget(self.line_4)
89
+
90
+ self.label = QLabel(self.mainWidget)
91
+ self.label.setObjectName(u"label")
92
+ font = QFont()
93
+ font.setPointSize(14)
94
+ self.label.setFont(font)
95
+ self.label.setLayoutDirection(Qt.LayoutDirection.LeftToRight)
96
+
97
+ self.horizontalLayout.addWidget(self.label)
98
+
99
+ self.horizontalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
100
+
101
+ self.horizontalLayout.addItem(self.horizontalSpacer)
102
+
103
+
104
+ self.verticalLayout_4.addLayout(self.horizontalLayout)
105
+
106
+ self.treeWidget = QTreeWidget(self.mainWidget)
107
+ __qtreewidgetitem = QTreeWidgetItem()
108
+ __qtreewidgetitem.setTextAlignment(2, Qt.AlignLeading|Qt.AlignVCenter);
109
+ self.treeWidget.setHeaderItem(__qtreewidgetitem)
110
+ self.treeWidget.setObjectName(u"treeWidget")
111
+ self.treeWidget.setBaseSize(QSize(0, 60))
112
+ self.treeWidget.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
113
+ self.treeWidget.header().setCascadingSectionResizes(True)
114
+ self.treeWidget.header().setMinimumSectionSize(8)
115
+
116
+ self.verticalLayout_4.addWidget(self.treeWidget)
117
+
118
+
119
+ self.horizontalLayout_2.addLayout(self.verticalLayout_4)
120
+
121
+ self.verticalLayout_2 = QVBoxLayout()
122
+ self.verticalLayout_2.setObjectName(u"verticalLayout_2")
123
+ self.label_5 = QLabel(self.mainWidget)
124
+ self.label_5.setObjectName(u"label_5")
125
+ font1 = QFont()
126
+ font1.setPointSize(15)
127
+ self.label_5.setFont(font1)
128
+
129
+ self.verticalLayout_2.addWidget(self.label_5)
130
+
131
+ self.formLayout = QFormLayout()
132
+ self.formLayout.setObjectName(u"formLayout")
133
+ self.formLayout.setLabelAlignment(Qt.AlignmentFlag.AlignLeading|Qt.AlignmentFlag.AlignLeft|Qt.AlignmentFlag.AlignVCenter)
134
+ self.formLayout.setFormAlignment(Qt.AlignmentFlag.AlignHCenter|Qt.AlignmentFlag.AlignTop)
135
+ self.formLayout.setContentsMargins(5, 5, 5, 5)
136
+ self.label_6 = QLabel(self.mainWidget)
137
+ self.label_6.setObjectName(u"label_6")
138
+
139
+ self.formLayout.setWidget(0, QFormLayout.LabelRole, self.label_6)
140
+
141
+ self.pointCounter = QDoubleSpinBox(self.mainWidget)
142
+ self.pointCounter.setObjectName(u"pointCounter")
143
+ self.pointCounter.setEnabled(True)
144
+ sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
145
+ sizePolicy.setHorizontalStretch(0)
146
+ sizePolicy.setVerticalStretch(0)
147
+ sizePolicy.setHeightForWidth(self.pointCounter.sizePolicy().hasHeightForWidth())
148
+ self.pointCounter.setSizePolicy(sizePolicy)
149
+ self.pointCounter.setBaseSize(QSize(190, 0))
150
+ font2 = QFont()
151
+ font2.setPointSize(13)
152
+ self.pointCounter.setFont(font2)
153
+ self.pointCounter.setAutoFillBackground(False)
154
+ self.pointCounter.setInputMethodHints(Qt.InputMethodHint.ImhNone)
155
+ self.pointCounter.setButtonSymbols(QAbstractSpinBox.ButtonSymbols.UpDownArrows)
156
+ self.pointCounter.setDecimals(1)
157
+ self.pointCounter.setMaximum(999.899999999999977)
158
+
159
+ self.formLayout.setWidget(0, QFormLayout.FieldRole, self.pointCounter)
160
+
161
+ self.label_7 = QLabel(self.mainWidget)
162
+ self.label_7.setObjectName(u"label_7")
163
+
164
+ self.formLayout.setWidget(1, QFormLayout.LabelRole, self.label_7)
165
+
166
+ self.questionCounter = QDoubleSpinBox(self.mainWidget)
167
+ self.questionCounter.setObjectName(u"questionCounter")
168
+ self.questionCounter.setFont(font2)
169
+ self.questionCounter.setDecimals(0)
170
+ self.questionCounter.setMaximum(300.000000000000000)
171
+
172
+ self.formLayout.setWidget(1, QFormLayout.FieldRole, self.questionCounter)
173
+
174
+ self.label_8 = QLabel(self.mainWidget)
175
+ self.label_8.setObjectName(u"label_8")
176
+
177
+ self.formLayout.setWidget(2, QFormLayout.LabelRole, self.label_8)
178
+
179
+ self.categoriesCounter = QSpinBox(self.mainWidget)
180
+ self.categoriesCounter.setObjectName(u"categoriesCounter")
181
+ self.categoriesCounter.setFont(font2)
182
+ self.categoriesCounter.setMaximum(999)
183
+
184
+ self.formLayout.setWidget(2, QFormLayout.FieldRole, self.categoriesCounter)
185
+
186
+
187
+ self.verticalLayout_2.addLayout(self.formLayout)
188
+
189
+ self.line_3 = QFrame(self.mainWidget)
190
+ self.line_3.setObjectName(u"line_3")
191
+ self.line_3.setFrameShape(QFrame.Shape.HLine)
192
+ self.line_3.setFrameShadow(QFrame.Shadow.Sunken)
193
+
194
+ self.verticalLayout_2.addWidget(self.line_3)
195
+
196
+ self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
197
+
198
+ self.verticalLayout_2.addItem(self.verticalSpacer)
199
+
200
+ self.label_2 = QLabel(self.mainWidget)
201
+ self.label_2.setObjectName(u"label_2")
202
+ self.label_2.setFont(font)
203
+ self.label_2.setLayoutDirection(Qt.LayoutDirection.LeftToRight)
204
+
205
+ self.verticalLayout_2.addWidget(self.label_2)
206
+
207
+ self.buttonSpreadSheet = QPushButton(self.mainWidget)
208
+ self.buttonSpreadSheet.setObjectName(u"buttonSpreadSheet")
209
+ #if QT_CONFIG(tooltip)
210
+ self.buttonSpreadSheet.setToolTip(u"<html><head/><body><p>Select the Spreadsheet File with all the Questions inside</p></body></html>")
211
+ #endif // QT_CONFIG(tooltip)
212
+
213
+ self.verticalLayout_2.addWidget(self.buttonSpreadSheet)
214
+
215
+ self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
216
+
217
+ self.verticalLayout_2.addItem(self.horizontalSpacer_2)
218
+
219
+ self.line_2 = QFrame(self.mainWidget)
220
+ self.line_2.setObjectName(u"line_2")
221
+ self.line_2.setFrameShape(QFrame.Shape.HLine)
222
+ self.line_2.setFrameShadow(QFrame.Shadow.Sunken)
223
+
224
+ self.verticalLayout_2.addWidget(self.line_2)
225
+
226
+ self.label_3 = QLabel(self.mainWidget)
227
+ self.label_3.setObjectName(u"label_3")
228
+ self.label_3.setFont(font)
229
+
230
+ self.verticalLayout_2.addWidget(self.label_3)
231
+
232
+ self.formLayout_2 = QFormLayout()
233
+ self.formLayout_2.setObjectName(u"formLayout_2")
234
+ self.formLayout_2.setContentsMargins(5, 5, 5, 5)
235
+ self.label_9 = QLabel(self.mainWidget)
236
+ self.label_9.setObjectName(u"label_9")
237
+
238
+ self.formLayout_2.setWidget(2, QFormLayout.LabelRole, self.label_9)
239
+
240
+ self.checkBoxIncludeCategories = QCheckBox(self.mainWidget)
241
+ self.checkBoxIncludeCategories.setObjectName(u"checkBoxIncludeCategories")
242
+
243
+ self.formLayout_2.setWidget(2, QFormLayout.FieldRole, self.checkBoxIncludeCategories)
244
+
245
+ self.spinBoxDefaultQVariant = QSpinBox(self.mainWidget)
246
+ self.spinBoxDefaultQVariant.setObjectName(u"spinBoxDefaultQVariant")
247
+
248
+ self.formLayout_2.setWidget(1, QFormLayout.FieldRole, self.spinBoxDefaultQVariant)
249
+
250
+ self.checkBoxUseDefQVariant = QCheckBox(self.mainWidget)
251
+ self.checkBoxUseDefQVariant.setObjectName(u"checkBoxUseDefQVariant")
252
+
253
+ self.formLayout_2.setWidget(0, QFormLayout.FieldRole, self.checkBoxUseDefQVariant)
254
+
255
+ self.label_10 = QLabel(self.mainWidget)
256
+ self.label_10.setObjectName(u"label_10")
257
+
258
+ self.formLayout_2.setWidget(1, QFormLayout.LabelRole, self.label_10)
259
+
260
+ self.label_11 = QLabel(self.mainWidget)
261
+ self.label_11.setObjectName(u"label_11")
262
+
263
+ self.formLayout_2.setWidget(0, QFormLayout.LabelRole, self.label_11)
264
+
265
+
266
+ self.verticalLayout_2.addLayout(self.formLayout_2)
267
+
268
+ self.buttonTestGen = QPushButton(self.mainWidget)
269
+ self.buttonTestGen.setObjectName(u"buttonTestGen")
270
+ self.buttonTestGen.setEnabled(False)
271
+ #if QT_CONFIG(tooltip)
272
+ self.buttonTestGen.setToolTip(u"<html><head/><body><p>exporst all selected questions to the test File</p></body></html>")
273
+ #endif // QT_CONFIG(tooltip)
274
+
275
+ self.verticalLayout_2.addWidget(self.buttonTestGen)
276
+
277
+ self.line = QFrame(self.mainWidget)
278
+ self.line.setObjectName(u"line")
279
+ self.line.setFrameShape(QFrame.Shape.VLine)
280
+ self.line.setFrameShadow(QFrame.Shadow.Sunken)
281
+
282
+ self.verticalLayout_2.addWidget(self.line)
283
+
284
+
285
+ self.horizontalLayout_2.addLayout(self.verticalLayout_2)
286
+
287
+
288
+ self.verticalLayout.addLayout(self.horizontalLayout_2)
289
+
290
+ self.label_4 = QLabel(self.mainWidget)
291
+ self.label_4.setObjectName(u"label_4")
292
+
293
+ self.verticalLayout.addWidget(self.label_4)
294
+
295
+ self.loggerWindow = QTextEdit(self.mainWidget)
296
+ self.loggerWindow.setObjectName(u"loggerWindow")
297
+ self.loggerWindow.setMinimumSize(QSize(0, 0))
298
+ self.loggerWindow.setMaximumSize(QSize(16777215, 373))
299
+ self.loggerWindow.setBaseSize(QSize(0, 30))
300
+ self.loggerWindow.setTextInteractionFlags(Qt.TextInteractionFlag.NoTextInteraction)
301
+
302
+ self.verticalLayout.addWidget(self.loggerWindow)
303
+
304
+ MoodleTestGenerator.setCentralWidget(self.mainWidget)
305
+ self.menubar = QMenuBar(MoodleTestGenerator)
306
+ self.menubar.setObjectName(u"menubar")
307
+ self.menubar.setGeometry(QRect(0, 0, 936, 33))
308
+ self.menuFile = QMenu(self.menubar)
309
+ self.menuFile.setObjectName(u"menuFile")
310
+ self.menuTools = QMenu(self.menubar)
311
+ self.menuTools.setObjectName(u"menuTools")
312
+ self.menuHelp = QMenu(self.menubar)
313
+ self.menuHelp.setObjectName(u"menuHelp")
314
+ MoodleTestGenerator.setMenuBar(self.menubar)
315
+ self.statusbar = QStatusBar(MoodleTestGenerator)
316
+ self.statusbar.setObjectName(u"statusbar")
317
+ MoodleTestGenerator.setStatusBar(self.statusbar)
318
+ self.toolBar = QToolBar(MoodleTestGenerator)
319
+ self.toolBar.setObjectName(u"toolBar")
320
+ MoodleTestGenerator.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.toolBar)
321
+ self.toolBar_3 = QToolBar(MoodleTestGenerator)
322
+ self.toolBar_3.setObjectName(u"toolBar_3")
323
+ MoodleTestGenerator.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.toolBar_3)
324
+ self.toolBar_2 = QToolBar(MoodleTestGenerator)
325
+ self.toolBar_2.setObjectName(u"toolBar_2")
326
+ MoodleTestGenerator.addToolBar(Qt.ToolBarArea.TopToolBarArea, self.toolBar_2)
327
+
328
+ self.menubar.addAction(self.menuFile.menuAction())
329
+ self.menubar.addAction(self.menuTools.menuAction())
330
+ self.menubar.addAction(self.menuHelp.menuAction())
331
+ self.menuFile.addAction(self.actionInput_Spreadsheet)
332
+ self.menuTools.addAction(self.actionEquationChecker)
333
+ self.menuTools.addAction(self.actionParseAll)
334
+ self.menuTools.addAction(self.actionPreviewQ)
335
+ self.menuTools.addAction(self.actionSetting)
336
+ self.menuHelp.addAction(self.actionAbout)
337
+ self.menuHelp.addAction(self.actionDocumentation)
338
+ self.toolBar.addAction(self.actionInput_Spreadsheet)
339
+ self.toolBar.addAction(self.actionParseAll)
340
+ self.toolBar.addSeparator()
341
+ self.toolBar_3.addAction(self.actionEquationChecker)
342
+ self.toolBar_3.addAction(self.actionPreviewQ)
343
+ self.toolBar_2.addAction(self.actionDocumentation)
344
+ self.toolBar_2.addAction(self.actionSetting)
345
+
346
+ self.retranslateUi(MoodleTestGenerator)
347
+
348
+ QMetaObject.connectSlotsByName(MoodleTestGenerator)
349
+ # setupUi
350
+
351
+ def retranslateUi(self, MoodleTestGenerator):
352
+ MoodleTestGenerator.setWindowTitle(QCoreApplication.translate("MoodleTestGenerator", u"excel 2 moodle", None))
353
+ self.actionInput_Spreadsheet.setText(QCoreApplication.translate("MoodleTestGenerator", u"&Input Spreadsheet", None))
354
+ #if QT_CONFIG(shortcut)
355
+ self.actionInput_Spreadsheet.setShortcut(QCoreApplication.translate("MoodleTestGenerator", u"Ctrl+O", None))
356
+ #endif // QT_CONFIG(shortcut)
357
+ self.actionOutput_Folder.setText(QCoreApplication.translate("MoodleTestGenerator", u"&Output Folder", None))
358
+ self.actionEquationChecker.setText(QCoreApplication.translate("MoodleTestGenerator", u"&Equation Checker", None))
359
+ self.actionParseAll.setText(QCoreApplication.translate("MoodleTestGenerator", u"&Parse all Questions", None))
360
+ #if QT_CONFIG(tooltip)
361
+ self.actionParseAll.setToolTip(QCoreApplication.translate("MoodleTestGenerator", u"Parses all questions inside the spreadsheet", None))
362
+ #endif // QT_CONFIG(tooltip)
363
+ #if QT_CONFIG(shortcut)
364
+ self.actionParseAll.setShortcut(QCoreApplication.translate("MoodleTestGenerator", u"Ctrl+R", None))
365
+ #endif // QT_CONFIG(shortcut)
366
+ self.actionPreviewQ.setText(QCoreApplication.translate("MoodleTestGenerator", u"Preview Question", None))
367
+ #if QT_CONFIG(shortcut)
368
+ self.actionPreviewQ.setShortcut(QCoreApplication.translate("MoodleTestGenerator", u"Ctrl+P", None))
369
+ #endif // QT_CONFIG(shortcut)
370
+ self.actionAbout.setText(QCoreApplication.translate("MoodleTestGenerator", u"About", None))
371
+ self.actionDocumentation.setText(QCoreApplication.translate("MoodleTestGenerator", u"Documentation", None))
372
+ #if QT_CONFIG(shortcut)
373
+ self.actionDocumentation.setShortcut(QCoreApplication.translate("MoodleTestGenerator", u"F1", None))
374
+ #endif // QT_CONFIG(shortcut)
375
+ self.actionSetting.setText(QCoreApplication.translate("MoodleTestGenerator", u"Settings", None))
376
+ self.checkBoxQuestionListSelectAll.setText(QCoreApplication.translate("MoodleTestGenerator", u"Select all", None))
377
+ self.label.setText(QCoreApplication.translate("MoodleTestGenerator", u"Question List", None))
378
+ ___qtreewidgetitem = self.treeWidget.headerItem()
379
+ ___qtreewidgetitem.setText(3, QCoreApplication.translate("MoodleTestGenerator", u"Variant", None));
380
+ ___qtreewidgetitem.setText(2, QCoreApplication.translate("MoodleTestGenerator", u"Points", None));
381
+ ___qtreewidgetitem.setText(1, QCoreApplication.translate("MoodleTestGenerator", u"Description", None));
382
+ ___qtreewidgetitem.setText(0, QCoreApplication.translate("MoodleTestGenerator", u"Question ID", None));
383
+ self.label_5.setText(QCoreApplication.translate("MoodleTestGenerator", u"Selected:", None))
384
+ self.label_6.setText(QCoreApplication.translate("MoodleTestGenerator", u"Points", None))
385
+ self.pointCounter.setPrefix("")
386
+ self.label_7.setText(QCoreApplication.translate("MoodleTestGenerator", u"Questions", None))
387
+ self.questionCounter.setPrefix("")
388
+ self.label_8.setText(QCoreApplication.translate("MoodleTestGenerator", u"Categories", None))
389
+ self.categoriesCounter.setSuffix("")
390
+ self.categoriesCounter.setPrefix("")
391
+ self.label_2.setText(QCoreApplication.translate("MoodleTestGenerator", u"Input", None))
392
+ self.buttonSpreadSheet.setText(QCoreApplication.translate("MoodleTestGenerator", u"Select spreadsheet", None))
393
+ self.label_3.setText(QCoreApplication.translate("MoodleTestGenerator", u"Output", None))
394
+ #if QT_CONFIG(tooltip)
395
+ self.label_9.setToolTip(QCoreApplication.translate("MoodleTestGenerator", u"If enabled, all questions will be categorized, when importing into moodle. Otherwise they will all be imported into one category", None))
396
+ #endif // QT_CONFIG(tooltip)
397
+ self.label_9.setText(QCoreApplication.translate("MoodleTestGenerator", u"Include Questions in Categories", None))
398
+ self.checkBoxIncludeCategories.setText("")
399
+ self.checkBoxUseDefQVariant.setText("")
400
+ self.label_10.setText(QCoreApplication.translate("MoodleTestGenerator", u"Default Question Variant", None))
401
+ #if QT_CONFIG(tooltip)
402
+ self.label_11.setToolTip(QCoreApplication.translate("MoodleTestGenerator", u"If enabled it will always use the question variant that is set below. If not, it will ask everytime, which question Variant should be used", None))
403
+ #endif // QT_CONFIG(tooltip)
404
+ self.label_11.setText(QCoreApplication.translate("MoodleTestGenerator", u"Use default question Variant", None))
405
+ self.buttonTestGen.setText(QCoreApplication.translate("MoodleTestGenerator", u"export selected Questions to examfile", None))
406
+ self.label_4.setText(QCoreApplication.translate("MoodleTestGenerator", u"Logger", None))
407
+ self.menuFile.setTitle(QCoreApplication.translate("MoodleTestGenerator", u"File", None))
408
+ self.menuTools.setTitle(QCoreApplication.translate("MoodleTestGenerator", u"Tools", None))
409
+ self.menuHelp.setTitle(QCoreApplication.translate("MoodleTestGenerator", u"Help", None))
410
+ self.toolBar.setWindowTitle(QCoreApplication.translate("MoodleTestGenerator", u"toolBar", None))
411
+ self.toolBar_3.setWindowTitle(QCoreApplication.translate("MoodleTestGenerator", u"toolBar_3", None))
412
+ self.toolBar_2.setWindowTitle(QCoreApplication.translate("MoodleTestGenerator", u"toolBar_2", None))
413
+ # retranslateUi
414
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: excel2moodle
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: A Package for Converting Questions input into a spreadsheet, to valid moodle-xml
5
5
  Author: Jakob Bosse
6
6
  License-Expression: GPL-3.0-or-later
@@ -2,12 +2,12 @@ excel2moodle/__init__.py,sha256=nb37g9Zga4KqTA5r-GFei9_XCunoPESxww9BL8zzMBI,3841
2
2
  excel2moodle/__main__.py,sha256=yLls1C3w070wtrrRl3_HXs5TNaO8l0yRDGtIAcHmeDk,695
3
3
  excel2moodle/core/__init__.py,sha256=E7smxf7ESHlucvho4Gb5oaTHA7IsOv9J-UDIsoKwp84,399
4
4
  excel2moodle/core/category.py,sha256=6U10HgQQVi0BYO28XrsLbYFqr0GbxEN9U2-fPDTM1Ng,4149
5
- excel2moodle/core/dataStructure.py,sha256=KXXWHPxyfG_WGiwQZw23lFcbRlHIahNtvhw3s70JiZk,6176
5
+ excel2moodle/core/dataStructure.py,sha256=8cLqGZLhHRscohrstvsYARWvKekGAfdoMV1zWuUpHCA,6200
6
6
  excel2moodle/core/etHelpers.py,sha256=_fd-fGMVNWt1l8FY7xcA2uXOBahxtq8ggYxRYm4SwdA,2354
7
7
  excel2moodle/core/exceptions.py,sha256=3OLVHMCBgETiOxSsirlsCPvlMN5UgEQcMkRDkCfrUs4,675
8
8
  excel2moodle/core/globals.py,sha256=9V9-KBSsHMdsRZWg2wGrvjAd6dc3XZG4pNPnun0AHGE,3595
9
9
  excel2moodle/core/numericMultiQ.py,sha256=InBrn-tsCCYwDb78sGR3FyFxVeN0GfIg63JGtr_tqg4,2751
10
- excel2moodle/core/parser.py,sha256=b58EGMdfMAdZcP17p0Ez6Rg0lGc8Gmd3LePO9Tq8F0I,13454
10
+ excel2moodle/core/parser.py,sha256=ruSFHKjwpXggaETrtsUBdZK1BENCe2wppmOLdpKrAAs,13455
11
11
  excel2moodle/core/question.py,sha256=4mbzy6ZodvdM5QfBZltR950BmMdXqSBe9V7HBLZMewM,4198
12
12
  excel2moodle/core/questionValidator.py,sha256=6leCAvMFOieiVJtQEYx4iihiaKuuSBlCpBkpqbzKa3M,4139
13
13
  excel2moodle/core/questionWriter.py,sha256=kyUTrnjWrLEWdez5_7FPNJ0Cs_fF5d16oOQiVvHv3zA,10242
@@ -15,7 +15,7 @@ excel2moodle/core/stringHelpers.py,sha256=c92YYFluZ6-NIM7K1k0SzN_zB82hh3huNZMH0N
15
15
  excel2moodle/extra/__init__.py,sha256=e70OmuW3j7N4ErIIHlK4vkmCKcpRbitJCdJvzjego8c,339
16
16
  excel2moodle/extra/equationVerification.py,sha256=FOvVBQZ357fbA5nYkHjvvWWVP3pQpo4RK3H7vru9v3A,4278
17
17
  excel2moodle/ui/__init__.py,sha256=4EdGtpzwH3rgw4xW9E5x9kdPQYwKbo9rehHRZTNxCrQ,44
18
- excel2moodle/ui/appUi.py,sha256=LBC7rAReFPmNSKoNcwvNbjnfmWDfMm1-b1u6hU-zaS0,10085
18
+ excel2moodle/ui/appUi.py,sha256=gWLJ3vU-KcHAz0HQXrOk2hGi3LD_8SSC5aPVEpayMEA,9518
19
19
  excel2moodle/ui/dialogs.py,sha256=C58PzPLfkzglsRl-x8Y23TC08_JG03JgFCVFfEi_od8,2961
20
20
  excel2moodle/ui/questionPreviewDialog.py,sha256=_rJvz1GM90aNnj3P6SugEezK7JW6m74ZALgkChohWLM,4980
21
21
  excel2moodle/ui/settings.py,sha256=Zz4zxdGC55Ma6pB1HWdPdiAsN0fnqrPfgOFgSkVnKNA,1092
@@ -23,8 +23,9 @@ excel2moodle/ui/treewidget.py,sha256=xiYWhJeJ9o9Iubtr44HcyJas9v4m8aBsHNdokQAHi80
23
23
  excel2moodle/ui/variantDialog.py,sha256=snVaF3_YAc7NWjMRg7NzbjL_PzNbOpt4eiqElkE46io,5414
24
24
  excel2moodle/ui/windowDoc.py,sha256=IciZpwrLnGzIQV1aCdKQBg6km3oufHGs8havTFzNJyU,1055
25
25
  excel2moodle/ui/windowEquationChecker.py,sha256=fLyal3sbJwpthWCAxLB5vbSFOX23JoivoYksNp3mZVY,7925
26
- excel2moodle-0.3.1.dist-info/licenses/LICENSE,sha256=ywQqe6Sitymkf2lV2NRcx_aGsaC-KbSl_EfEsRXmNRw,35135
27
- excel2moodle-0.3.1.dist-info/METADATA,sha256=xTwkg5GqCqJ3sWdNs6ypLZHQJTw7jW73WGpsIyr3X7M,2904
28
- excel2moodle-0.3.1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
29
- excel2moodle-0.3.1.dist-info/top_level.txt,sha256=5V1xRUQ9o7UmOCmNoWCZPAuy5nXp3Qbzyqch8fUGT_c,13
30
- excel2moodle-0.3.1.dist-info/RECORD,,
26
+ excel2moodle/ui/windowMain.py,sha256=sB1ahkAwxFxO3EYP3X_MuB6ohgXwK5NUQHWeFo4eqrI,21062
27
+ excel2moodle-0.3.2.dist-info/licenses/LICENSE,sha256=ywQqe6Sitymkf2lV2NRcx_aGsaC-KbSl_EfEsRXmNRw,35135
28
+ excel2moodle-0.3.2.dist-info/METADATA,sha256=f_TnbqQEmg8wy6WuvMuYOTd8u_-h5qw4aKADlcvtzsM,2904
29
+ excel2moodle-0.3.2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
30
+ excel2moodle-0.3.2.dist-info/top_level.txt,sha256=5V1xRUQ9o7UmOCmNoWCZPAuy5nXp3Qbzyqch8fUGT_c,13
31
+ excel2moodle-0.3.2.dist-info/RECORD,,