excel2moodle 0.3.1__tar.gz → 0.3.2__tar.gz
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.
- {excel2moodle-0.3.1/excel2moodle.egg-info → excel2moodle-0.3.2}/PKG-INFO +1 -1
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/excel2moodle.core.html +4 -4
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/excel2moodle.extra.html +3 -3
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/excel2moodle.html +3 -3
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/excel2moodle.ui.html +3 -3
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/excel2moodle.usage.html +3 -3
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/genindex.html +3 -3
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/index.html +3 -3
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/modules.html +3 -3
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/py-modindex.html +3 -3
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/search.html +3 -3
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/dataStructure.py +1 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/parser.py +1 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/appUi.py +13 -31
- excel2moodle-0.3.2/excel2moodle/ui/windowMain.py +414 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2/excel2moodle.egg-info}/PKG-INFO +1 -1
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle.egg-info/SOURCES.txt +2 -1
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/pyproject.toml +1 -8
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/LICENSE +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/MANIFEST.in +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/README.md +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/__init__.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/__main__.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/__init__.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/category.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/etHelpers.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/exceptions.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/globals.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/numericMultiQ.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/question.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/questionValidator.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/questionWriter.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/stringHelpers.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/extra/__init__.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/extra/equationVerification.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/__init__.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/dialogs.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/questionPreviewDialog.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/settings.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/treewidget.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/variantDialog.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/windowDoc.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/windowEquationChecker.py +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle.egg-info/dependency_links.txt +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle.egg-info/requires.txt +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle.egg-info/top_level.txt +0 -0
- {excel2moodle-0.3.1 → excel2moodle-0.3.2}/setup.cfg +0 -0
@@ -4,7 +4,7 @@
|
|
4
4
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
5
5
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7
|
-
<title>excel2moodle.core package — excel2moodle 0.3.
|
7
|
+
<title>excel2moodle.core package — excel2moodle 0.3.1 documentation</title>
|
8
8
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
9
9
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
10
10
|
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
17
17
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
18
|
-
<script src="_static/documentation_options.js?v=
|
18
|
+
<script src="_static/documentation_options.js?v=3e6abc0e"></script>
|
19
19
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
20
20
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
21
21
|
<script src="_static/js/theme.js"></script>
|
@@ -37,7 +37,7 @@
|
|
37
37
|
excel2moodle
|
38
38
|
</a>
|
39
39
|
<div class="version">
|
40
|
-
0.3.
|
40
|
+
0.3.1
|
41
41
|
</div>
|
42
42
|
<div role="search">
|
43
43
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
@@ -362,7 +362,7 @@
|
|
362
362
|
|
363
363
|
<dl class="py attribute">
|
364
364
|
<dt class="sig sig-object py" id="excel2moodle.core.dataStructure.QuestionDB.dataChanged">
|
365
|
-
<span class="sig-name descname"><span class="pre">dataChanged</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre"><excel2moodle.QSignaler(
|
365
|
+
<span class="sig-name descname"><span class="pre">dataChanged</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre"><excel2moodle.QSignaler(0x557dae37fad0)></span></em><a class="headerlink" href="#excel2moodle.core.dataStructure.QuestionDB.dataChanged" title="Link to this definition"></a></dt>
|
366
366
|
<dd></dd></dl>
|
367
367
|
|
368
368
|
<dl class="py method">
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
5
5
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7
|
-
<title>excel2moodle.extra package — excel2moodle 0.3.
|
7
|
+
<title>excel2moodle.extra package — excel2moodle 0.3.1 documentation</title>
|
8
8
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
9
9
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
10
10
|
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
17
17
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
18
|
-
<script src="_static/documentation_options.js?v=
|
18
|
+
<script src="_static/documentation_options.js?v=3e6abc0e"></script>
|
19
19
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
20
20
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
21
21
|
<script src="_static/js/theme.js"></script>
|
@@ -37,7 +37,7 @@
|
|
37
37
|
excel2moodle
|
38
38
|
</a>
|
39
39
|
<div class="version">
|
40
|
-
0.3.
|
40
|
+
0.3.1
|
41
41
|
</div>
|
42
42
|
<div role="search">
|
43
43
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
5
5
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7
|
-
<title>excel2moodle package — excel2moodle 0.3.
|
7
|
+
<title>excel2moodle package — excel2moodle 0.3.1 documentation</title>
|
8
8
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
9
9
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
10
10
|
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
17
17
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
18
|
-
<script src="_static/documentation_options.js?v=
|
18
|
+
<script src="_static/documentation_options.js?v=3e6abc0e"></script>
|
19
19
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
20
20
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
21
21
|
<script src="_static/js/theme.js"></script>
|
@@ -35,7 +35,7 @@
|
|
35
35
|
excel2moodle
|
36
36
|
</a>
|
37
37
|
<div class="version">
|
38
|
-
0.3.
|
38
|
+
0.3.1
|
39
39
|
</div>
|
40
40
|
<div role="search">
|
41
41
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
5
5
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7
|
-
<title>excel2moodle.ui package — excel2moodle 0.3.
|
7
|
+
<title>excel2moodle.ui package — excel2moodle 0.3.1 documentation</title>
|
8
8
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
9
9
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
10
10
|
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
17
17
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
18
|
-
<script src="_static/documentation_options.js?v=
|
18
|
+
<script src="_static/documentation_options.js?v=3e6abc0e"></script>
|
19
19
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
20
20
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
21
21
|
<script src="_static/js/theme.js"></script>
|
@@ -36,7 +36,7 @@
|
|
36
36
|
excel2moodle
|
37
37
|
</a>
|
38
38
|
<div class="version">
|
39
|
-
0.3.
|
39
|
+
0.3.1
|
40
40
|
</div>
|
41
41
|
<div role="search">
|
42
42
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
5
5
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7
|
-
<title>User Guide — excel2moodle 0.3.
|
7
|
+
<title>User Guide — excel2moodle 0.3.1 documentation</title>
|
8
8
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
9
9
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
10
10
|
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
17
17
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
18
|
-
<script src="_static/documentation_options.js?v=
|
18
|
+
<script src="_static/documentation_options.js?v=3e6abc0e"></script>
|
19
19
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
20
20
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
21
21
|
<script src="_static/js/theme.js"></script>
|
@@ -37,7 +37,7 @@
|
|
37
37
|
excel2moodle
|
38
38
|
</a>
|
39
39
|
<div class="version">
|
40
|
-
0.3.
|
40
|
+
0.3.1
|
41
41
|
</div>
|
42
42
|
<div role="search">
|
43
43
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<head>
|
4
4
|
<meta charset="utf-8" />
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
6
|
-
<title>Index — excel2moodle 0.3.
|
6
|
+
<title>Index — excel2moodle 0.3.1 documentation</title>
|
7
7
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
8
8
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
9
9
|
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
16
16
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
17
|
-
<script src="_static/documentation_options.js?v=
|
17
|
+
<script src="_static/documentation_options.js?v=3e6abc0e"></script>
|
18
18
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
19
19
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
20
20
|
<script src="_static/js/theme.js"></script>
|
@@ -34,7 +34,7 @@
|
|
34
34
|
excel2moodle
|
35
35
|
</a>
|
36
36
|
<div class="version">
|
37
|
-
0.3.
|
37
|
+
0.3.1
|
38
38
|
</div>
|
39
39
|
<div role="search">
|
40
40
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
5
5
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7
|
-
<title>excel2moodle documentation — excel2moodle 0.3.
|
7
|
+
<title>excel2moodle documentation — excel2moodle 0.3.1 documentation</title>
|
8
8
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
9
9
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
10
10
|
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
17
17
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
18
|
-
<script src="_static/documentation_options.js?v=
|
18
|
+
<script src="_static/documentation_options.js?v=3e6abc0e"></script>
|
19
19
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
20
20
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
21
21
|
<script src="_static/js/theme.js"></script>
|
@@ -36,7 +36,7 @@
|
|
36
36
|
excel2moodle
|
37
37
|
</a>
|
38
38
|
<div class="version">
|
39
|
-
0.3.
|
39
|
+
0.3.1
|
40
40
|
</div>
|
41
41
|
<div role="search">
|
42
42
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
5
5
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7
|
-
<title>excel2moodle — excel2moodle 0.3.
|
7
|
+
<title>excel2moodle — excel2moodle 0.3.1 documentation</title>
|
8
8
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
9
9
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
10
10
|
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
17
17
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
18
|
-
<script src="_static/documentation_options.js?v=
|
18
|
+
<script src="_static/documentation_options.js?v=3e6abc0e"></script>
|
19
19
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
20
20
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
21
21
|
<script src="_static/js/theme.js"></script>
|
@@ -35,7 +35,7 @@
|
|
35
35
|
excel2moodle
|
36
36
|
</a>
|
37
37
|
<div class="version">
|
38
|
-
0.3.
|
38
|
+
0.3.1
|
39
39
|
</div>
|
40
40
|
<div role="search">
|
41
41
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<head>
|
4
4
|
<meta charset="utf-8" />
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
6
|
-
<title>Python Module Index — excel2moodle 0.3.
|
6
|
+
<title>Python Module Index — excel2moodle 0.3.1 documentation</title>
|
7
7
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
8
8
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
9
9
|
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
16
16
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
17
|
-
<script src="_static/documentation_options.js?v=
|
17
|
+
<script src="_static/documentation_options.js?v=3e6abc0e"></script>
|
18
18
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
19
19
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
20
20
|
<script src="_static/js/theme.js"></script>
|
@@ -37,7 +37,7 @@
|
|
37
37
|
excel2moodle
|
38
38
|
</a>
|
39
39
|
<div class="version">
|
40
|
-
0.3.
|
40
|
+
0.3.1
|
41
41
|
</div>
|
42
42
|
<div role="search">
|
43
43
|
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<head>
|
4
4
|
<meta charset="utf-8" />
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
6
|
-
<title>Search — excel2moodle 0.3.
|
6
|
+
<title>Search — excel2moodle 0.3.1 documentation</title>
|
7
7
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" />
|
8
8
|
<link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" />
|
9
9
|
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
<script src="_static/jquery.js?v=5d32c60e"></script>
|
17
17
|
<script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
18
|
-
<script src="_static/documentation_options.js?v=
|
18
|
+
<script src="_static/documentation_options.js?v=3e6abc0e"></script>
|
19
19
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
20
20
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
21
21
|
<script src="_static/js/theme.js"></script>
|
@@ -37,7 +37,7 @@
|
|
37
37
|
excel2moodle
|
38
38
|
</a>
|
39
39
|
<div class="version">
|
40
|
-
0.3.
|
40
|
+
0.3.1
|
41
41
|
</div>
|
42
42
|
<div role="search">
|
43
43
|
<form id="rtd-search-form" class="wy-form" action="#" method="get">
|
@@ -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
|
@@ -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
|
-
|
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
|
+
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "excel2moodle"
|
7
|
-
version = "0.3.
|
7
|
+
version = "0.3.2"
|
8
8
|
authors = [
|
9
9
|
{ name="Jakob Bosse" },
|
10
10
|
]
|
@@ -27,13 +27,6 @@ classifiers = [
|
|
27
27
|
"Operating System :: OS Independent",
|
28
28
|
]
|
29
29
|
|
30
|
-
|
31
|
-
# [tool.setuptools.packaga-data]
|
32
|
-
# = {
|
33
|
-
# "":["README.md", "LICENSE", "docs/_build/html//*"]
|
34
|
-
# },
|
35
|
-
# include_package_data=true
|
36
|
-
|
37
30
|
[tool.setuptools.packages.find]
|
38
31
|
where = ["."] # Look for packages in the root directory
|
39
32
|
include = ["excel2moodle*"] # Include all packages starting with excel2moodle
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|