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.
Files changed (47) hide show
  1. {excel2moodle-0.3.1/excel2moodle.egg-info → excel2moodle-0.3.2}/PKG-INFO +1 -1
  2. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/excel2moodle.core.html +4 -4
  3. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/excel2moodle.extra.html +3 -3
  4. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/excel2moodle.html +3 -3
  5. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/excel2moodle.ui.html +3 -3
  6. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/excel2moodle.usage.html +3 -3
  7. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/genindex.html +3 -3
  8. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/index.html +3 -3
  9. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/modules.html +3 -3
  10. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/py-modindex.html +3 -3
  11. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/docs/_build/html/search.html +3 -3
  12. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/dataStructure.py +1 -0
  13. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/parser.py +1 -0
  14. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/appUi.py +13 -31
  15. excel2moodle-0.3.2/excel2moodle/ui/windowMain.py +414 -0
  16. {excel2moodle-0.3.1 → excel2moodle-0.3.2/excel2moodle.egg-info}/PKG-INFO +1 -1
  17. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle.egg-info/SOURCES.txt +2 -1
  18. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/pyproject.toml +1 -8
  19. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/LICENSE +0 -0
  20. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/MANIFEST.in +0 -0
  21. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/README.md +0 -0
  22. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/__init__.py +0 -0
  23. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/__main__.py +0 -0
  24. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/__init__.py +0 -0
  25. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/category.py +0 -0
  26. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/etHelpers.py +0 -0
  27. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/exceptions.py +0 -0
  28. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/globals.py +0 -0
  29. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/numericMultiQ.py +0 -0
  30. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/question.py +0 -0
  31. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/questionValidator.py +0 -0
  32. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/questionWriter.py +0 -0
  33. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/core/stringHelpers.py +0 -0
  34. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/extra/__init__.py +0 -0
  35. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/extra/equationVerification.py +0 -0
  36. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/__init__.py +0 -0
  37. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/dialogs.py +0 -0
  38. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/questionPreviewDialog.py +0 -0
  39. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/settings.py +0 -0
  40. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/treewidget.py +0 -0
  41. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/variantDialog.py +0 -0
  42. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/windowDoc.py +0 -0
  43. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle/ui/windowEquationChecker.py +0 -0
  44. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle.egg-info/dependency_links.txt +0 -0
  45. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle.egg-info/requires.txt +0 -0
  46. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/excel2moodle.egg-info/top_level.txt +0 -0
  47. {excel2moodle-0.3.1 → excel2moodle-0.3.2}/setup.cfg +0 -0
@@ -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
@@ -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 &mdash; excel2moodle 0.3.0 documentation</title>
7
+ <title>excel2moodle.core package &mdash; 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=c31a8348"></script>
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.0
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">&lt;excel2moodle.QSignaler(0x5c3d8ccef910)&gt;</span></em><a class="headerlink" href="#excel2moodle.core.dataStructure.QuestionDB.dataChanged" title="Link to this definition"></a></dt>
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">&lt;excel2moodle.QSignaler(0x557dae37fad0)&gt;</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 &mdash; excel2moodle 0.3.0 documentation</title>
7
+ <title>excel2moodle.extra package &mdash; 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=c31a8348"></script>
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.0
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 &mdash; excel2moodle 0.3.0 documentation</title>
7
+ <title>excel2moodle package &mdash; 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=c31a8348"></script>
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.0
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 &mdash; excel2moodle 0.3.0 documentation</title>
7
+ <title>excel2moodle.ui package &mdash; 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=c31a8348"></script>
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.0
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 &mdash; excel2moodle 0.3.0 documentation</title>
7
+ <title>User Guide &mdash; 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=c31a8348"></script>
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.0
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 &mdash; excel2moodle 0.3.0 documentation</title>
6
+ <title>Index &mdash; 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=c31a8348"></script>
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.0
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 &mdash; excel2moodle 0.3.0 documentation</title>
7
+ <title>excel2moodle documentation &mdash; 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=c31a8348"></script>
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.0
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 &mdash; excel2moodle 0.3.0 documentation</title>
7
+ <title>excel2moodle &mdash; 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=c31a8348"></script>
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.0
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 &mdash; excel2moodle 0.3.0 documentation</title>
6
+ <title>Python Module Index &mdash; 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=c31a8348"></script>
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.0
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 &mdash; excel2moodle 0.3.0 documentation</title>
6
+ <title>Search &mdash; 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=c31a8348"></script>
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.0
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
@@ -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
  """
@@ -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
@@ -41,4 +41,5 @@ excel2moodle/ui/settings.py
41
41
  excel2moodle/ui/treewidget.py
42
42
  excel2moodle/ui/variantDialog.py
43
43
  excel2moodle/ui/windowDoc.py
44
- excel2moodle/ui/windowEquationChecker.py
44
+ excel2moodle/ui/windowEquationChecker.py
45
+ excel2moodle/ui/windowMain.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "excel2moodle"
7
- version = "0.3.1"
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