Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • AlekSIS/official/AlekSIS-App-Untis
  • sunweaver/AlekSIS-App-Untis
  • cocguPpenda/AlekSIS-App-Untis
  • 0inraMfauri/AlekSIS-App-Untis
4 results
Show changes
Commits on Source (179)
Showing
with 1045 additions and 364 deletions
module.exports = {
root: true,
overrides: [
{
files: ["*.js", "*.vue"],
// parser: "vue-eslint-parser",
//processor: "@graphql-eslint/graphql",
extends: [
"eslint:recommended",
"plugin:vue/strongly-recommended",
"plugin:@intlify/vue-i18n/recommended",
],
rules: {
"no-unused-vars": "warn",
"vue/no-unused-vars": "off",
"vue/multi-word-component-names": "off",
"vue/attribute-hyphenation": "error",
"vue/v-slot-style": "error",
"@intlify/vue-i18n/key-format-style": [
"error",
"snake_case",
{
splitByDots: false,
},
],
// "@intlify/vue-i18n/no-unused-keys": ["warn", {}],
"@intlify/vue-i18n/no-raw-text": [
"error",
{
ignoreNodes: ["v-icon"],
ignorePattern: "^[-–—·#:()\\[\\]&\\.\\s]+$",
},
],
"@intlify/vue-i18n/no-deprecated-tc": "off",
// Fixes for prettier (avoid eslint-config-prettier)
// The following rules can be used in some cases. See the README for more
// information. (These are marked with `0` instead of `"off"` so that a
// script can distinguish them.)
curly: 0,
"lines-around-comment": 0,
"max-len": 0,
"no-confusing-arrow": 0,
"no-mixed-operators": 0,
"no-tabs": 0,
"no-unexpected-multiline": 0,
quotes: 0,
"@typescript-eslint/quotes": 0,
"babel/quotes": 0,
"vue/html-self-closing": 0,
"vue/max-len": 0,
// The rest are rules that you never need to enable when using Prettier.
"array-bracket-newline": "off",
"array-bracket-spacing": "off",
"array-element-newline": "off",
"arrow-parens": "off",
"arrow-spacing": "off",
"block-spacing": "off",
"brace-style": "off",
"comma-dangle": "off",
"comma-spacing": "off",
"comma-style": "off",
"computed-property-spacing": "off",
"dot-location": "off",
"eol-last": "off",
"func-call-spacing": "off",
"function-call-argument-newline": "off",
"function-paren-newline": "off",
"generator-star": "off",
"generator-star-spacing": "off",
"implicit-arrow-linebreak": "off",
indent: "off",
"jsx-quotes": "off",
"key-spacing": "off",
"keyword-spacing": "off",
"linebreak-style": "off",
"multiline-ternary": "off",
"newline-per-chained-call": "off",
"new-parens": "off",
"no-arrow-condition": "off",
"no-comma-dangle": "off",
"no-extra-parens": "off",
"no-extra-semi": "off",
"no-floating-decimal": "off",
"no-mixed-spaces-and-tabs": "off",
"no-multi-spaces": "off",
"no-multiple-empty-lines": "off",
"no-reserved-keys": "off",
"no-space-before-semi": "off",
"no-trailing-spaces": "off",
"no-whitespace-before-property": "off",
"no-wrap-func": "off",
"nonblock-statement-body-position": "off",
"object-curly-newline": "off",
"object-curly-spacing": "off",
"object-property-newline": "off",
"one-var-declaration-per-line": "off",
"operator-linebreak": "off",
"padded-blocks": "off",
"quote-props": "off",
"rest-spread-spacing": "off",
semi: "off",
"semi-spacing": "off",
"semi-style": "off",
"space-after-function-name": "off",
"space-after-keywords": "off",
"space-before-blocks": "off",
"space-before-function-paren": "off",
"space-before-function-parentheses": "off",
"space-before-keywords": "off",
"space-in-brackets": "off",
"space-in-parens": "off",
"space-infix-ops": "off",
"space-return-throw-case": "off",
"space-unary-ops": "off",
"space-unary-word-ops": "off",
"switch-colon-spacing": "off",
"template-curly-spacing": "off",
"template-tag-spacing": "off",
"unicode-bom": "off",
"wrap-iife": "off",
"wrap-regex": "off",
"yield-star-spacing": "off",
"@babel/object-curly-spacing": "off",
"@babel/semi": "off",
"@typescript-eslint/brace-style": "off",
"@typescript-eslint/comma-dangle": "off",
"@typescript-eslint/comma-spacing": "off",
"@typescript-eslint/func-call-spacing": "off",
"@typescript-eslint/indent": "off",
"@typescript-eslint/keyword-spacing": "off",
"@typescript-eslint/member-delimiter-style": "off",
"@typescript-eslint/no-extra-parens": "off",
"@typescript-eslint/no-extra-semi": "off",
"@typescript-eslint/object-curly-spacing": "off",
"@typescript-eslint/semi": "off",
"@typescript-eslint/space-before-blocks": "off",
"@typescript-eslint/space-before-function-paren": "off",
"@typescript-eslint/space-infix-ops": "off",
"@typescript-eslint/type-annotation-spacing": "off",
"babel/object-curly-spacing": "off",
"babel/semi": "off",
"flowtype/boolean-style": "off",
"flowtype/delimiter-dangle": "off",
"flowtype/generic-spacing": "off",
"flowtype/object-type-curly-spacing": "off",
"flowtype/object-type-delimiter": "off",
"flowtype/quotes": "off",
"flowtype/semi": "off",
"flowtype/space-after-type-colon": "off",
"flowtype/space-before-generic-bracket": "off",
"flowtype/space-before-type-colon": "off",
"flowtype/union-intersection-spacing": "off",
"react/jsx-child-element-spacing": "off",
"react/jsx-closing-bracket-location": "off",
"react/jsx-closing-tag-location": "off",
"react/jsx-curly-newline": "off",
"react/jsx-curly-spacing": "off",
"react/jsx-equals-spacing": "off",
"react/jsx-first-prop-new-line": "off",
"react/jsx-indent": "off",
"react/jsx-indent-props": "off",
"react/jsx-max-props-per-line": "off",
"react/jsx-newline": "off",
"react/jsx-one-expression-per-line": "off",
"react/jsx-props-no-multi-spaces": "off",
"react/jsx-tag-spacing": "off",
"react/jsx-wrap-multilines": "off",
"standard/array-bracket-even-spacing": "off",
"standard/computed-property-even-spacing": "off",
"standard/object-curly-even-spacing": "off",
"unicorn/empty-brace-spaces": "off",
"unicorn/no-nested-ternary": "off",
"unicorn/number-literal-case": "off",
"vue/array-bracket-newline": "off",
"vue/array-bracket-spacing": "off",
"vue/arrow-spacing": "off",
"vue/block-spacing": "off",
"vue/block-tag-newline": "off",
"vue/brace-style": "off",
"vue/comma-dangle": "off",
"vue/comma-spacing": "off",
"vue/comma-style": "off",
"vue/dot-location": "off",
"vue/func-call-spacing": "off",
"vue/html-closing-bracket-newline": "off",
"vue/html-closing-bracket-spacing": "off",
"vue/html-end-tags": "off",
"vue/html-indent": "off",
"vue/html-quotes": "off",
"vue/key-spacing": "off",
"vue/keyword-spacing": "off",
"vue/max-attributes-per-line": "off",
"vue/multiline-html-element-content-newline": "off",
"vue/multiline-ternary": "off",
"vue/mustache-interpolation-spacing": "off",
"vue/no-extra-parens": "off",
"vue/no-multi-spaces": "off",
"vue/no-spaces-around-equal-signs-in-attribute": "off",
"vue/object-curly-newline": "off",
"vue/object-curly-spacing": "off",
"vue/object-property-newline": "off",
"vue/operator-linebreak": "off",
"vue/quote-props": "off",
"vue/script-indent": "off",
"vue/singleline-html-element-content-newline": "off",
"vue/space-in-parens": "off",
"vue/space-infix-ops": "off",
"vue/space-unary-ops": "off",
"vue/template-curly-spacing": "off",
},
settings: {
"vue-i18n": {
localeDir: "./aleksis/core/frontend/messages/*.{json}",
messageSyntaxVersion: "^8.0.0",
},
},
env: {
es2021: true,
},
parserOptions: {
ecmaVersion: "latest",
},
},
{
files: ["*.graphql"],
parser: "@graphql-eslint/eslint-plugin",
plugins: ["@graphql-eslint"],
extends: "plugin:@graphql-eslint/operations-recommended",
parserOptions: {
graphQLConfig: {
schema: "./schema.json",
documents: "../aleksis/**/*/frontend/**/*.graphql",
},
},
rules: {
"@graphql-eslint/no-anonymous-operations": "error",
"@graphql-eslint/no-duplicate-fields": "error",
"@graphql-eslint/naming-convention": [
"error",
{
OperationDefinition: {
style: "camelCase",
forbiddenPrefixes: ["Query", "Mutation", "Subscription", "Get"],
forbiddenSuffixes: ["Query", "Mutation", "Subscription"],
},
},
],
},
},
],
};
{
"name": "aleksis-builddeps",
"version": "1.0.0",
"dependencies": {
"@graphql-eslint/eslint-plugin": "^4.3.0",
"@intlify/eslint-plugin-vue-i18n": "^3.0.0",
"eslint": "^8.26.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-vue": "^9.7.0",
"graphql": "^16.10.0",
"prettier": "^3.4.0",
"stylelint": "^15.0.0",
"stylelint-config-prettier": "^9.0.3",
"stylelint-config-standard": "^34.0.0"
}
}
<!-- AlekSIS is developed on EduGit. GitHub only serves as
backup mirror and to help people find the project. If
possible, please submit your merge request on EduGit!
EduGit accepts logins with GitHub accounts.
-->
[ ] I have read the above and have no way to contribute on EduGit
[ ] I understand that GitHub's terms of service exclude young and
learning contributors, but still cannot contribute on EduGit
instead.
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
*.py[cod]
__pycache__/
# Distribution / packaging
*.egg
*.egg-info/
.Python
.eggs/
.installed.cfg
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
pip-log.txt
# Translations
*.mo
......@@ -39,22 +39,60 @@ local_settings.py
# Environments
.env
.venv
ENV/
env/
venv/
ENV/
# Editors
*~
DEADJOE
\#*#
# IntelliJ
.idea
.idea/
# VSCode
.vscode/
.history/
*.code-workspace
# Database
db.sqlite3
# Sphinx
docs/_build/
# Test
.tox/
# TeX
*.aux
# Generated files
/cache
/node_modules
.dev-js/node_modules
/static/
/whoosh_index/
.vite
.dev-js/.yarn
.dev-js/.pnp.cjs
.dev-js/.pnp.loader.mjs
.dev-js/.yarnrc.yml
.dev-js/schema.json
# Lock files
poetry.lock
package-lock.json
yarn.lock
.dev-js/yarn.lock
# Tests
.coverage
.mypy_cache/
.tox/
htmlcov/
# Data
maintenance_mode_state.txt
media/
aleksis/core/static/style.css
include:
- project: "AlekSIS/official/AlekSIS"
file: /ci/general.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/prepare/lock.yml
# - project: "AlekSIS/official/AlekSIS"
# file: /ci/test/test.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/test/lint.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/test/security.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/build/dist.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/build/docs.yml
- project: "AlekSIS/official/AlekSIS"
file: "/ci/deploy/trigger_dist.yml"
- project: "AlekSIS/official/AlekSIS"
file: /ci/publish/pypi.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/deploy/pages.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/general.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/prepare/lock.yml
# - project: "AlekSIS/official/AlekSIS"
# file: /ci/test/test.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/test/lint.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/test/security.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/build/dist.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/build/docs.yml
- project: "AlekSIS/official/AlekSIS"
file: "/ci/deploy/trigger_dist.yml"
- project: "AlekSIS/official/AlekSIS"
file: /ci/publish/pypi.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/deploy/pages.yml
# Byte-compiled / optimized / DLL files
*$py.class
*.py[cod]
__pycache__/
# Distribution / packaging
*.egg
*.egg-info/
.Python
.eggs/
.installed.cfg
build/
develop-eggs/
dist/
downloads/
eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
# Installer logs
pip-delete-this-directory.txt
pip-log.txt
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
# pyenv
.python-version
# Environments
.env
.venv
ENV/
env/
venv/
# Editors
*~
DEADJOE
\#*#
# IntelliJ
.idea
.idea/
# Database
db.sqlite3
# Sphinx
docs/_build/
# TeX
*.aux
# Generated files
/node_modules/
/static/
/whoosh_index/
poetry.lock
.coverage
.mypy_cache/
.tox/
htmlcov/
maintenance_mode_state.txt
media/
package-lock.json
yarn.lock
# VSCode
.vscode/
.history/
*.code-workspace
/cache
# Add HTML files to avoid problems with unsupported Django templates
*.html
# Do not check/reformat generated files
aleksis/core/util/licenses.json
.vite/
.pnp.cjs
.pnp.loader.mjs
.git/
......@@ -9,11 +9,94 @@ and this project adheres to `Semantic Versioning`_.
Unreleased
----------
Breaking Changes
~~~~~~~~~~~~~~~~
The Untis importer was updated to work with Chronos 4.x. This now
requires also to import data into AlekSIS-App-Cursus,
AlekSIS-App-Kolego, and AlekSIS-App-Lesrooster.
Added
~~~~~
* Set group types for class and course groups during import.
Removed
~~~~~~~
* Remove support for Untis exams.
`3.0.1`_ - 2023-09-25
---------------------
Fixed
~~~~~
* Migrations failed in some cases due to programming mistake.
`3.0`_ - 2023-05-15
-------------------
Nothing changed.
`3.0b0`_ - 2023-02-27
---------------------
Removed
~~~~~~~
* Legacy menu integration for AlekSIS-Core pre-3.0
Added
~~~~~
* Add SPA support for AlekSIS-Core 3.0
Changed
~~~~~~~
* Use Room model from core
Fixed
~~~~~
* Importer failed sometimes on progressing absences.
* Exam import failed sometimes when data provided through Untis were incomplete.
* Importer now automatically fixes intersections of terms with previous terms.
Removed
~~~~~~~
* Remove unused data management menu entry.
`2.3.2`_ - 2022-09-01
---------------------
Fixed
~~~~~
* Guessing school ID could fail in `aleksis-admin migrate` under some
version conditions
`2.3.1`_ - 2022-08-13
---------------------
Fixed
~~~~~
* Import failed sometimes if there were lessons with names.
* Import failed if there was a lesson without a teacher.
* Course group matching didn't work correctly with teachers.
`2.3`_ - 2022-06-25
-------------------
Added
~~~~~
* Support for configuring the Untis school ID
* Add Ukrainian locale (contributed by Sergiy Gorichenko from Fre(i)e Software GmbH).
* Import exams from Untis.
Fixed
~~~~~
......@@ -208,14 +291,21 @@ Fixed
.. _Keep a Changelog: https://keepachangelog.com/en/1.0.0/
.. _Semantic Versioning: https://semver.org/spec/v2.0.0.html
.. _1.0a1: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/1.0a1
.. _2.0a2: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/2.0a2
.. _2.0b0: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/2.0b0
.. _2.0rc1: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/2.0rc1
.. _2.0rc2: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/2.0rc2
.. _2.0rc3: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/2.0rc3
.. _2.0: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/2.0
.. _2.1: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/2.1
.. _2.1.1: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/2.1.1
.. _2.1.2: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/2.1.2
.. _2.1.3: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/2.1.3
.. _1.0a1: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/1.0a1
.. _2.0a2: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.0a2
.. _2.0b0: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.0b0
.. _2.0rc1: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.0rc1
.. _2.0rc2: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.0rc2
.. _2.0rc3: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.0rc3
.. _2.0: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.0
.. _2.1: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.1
.. _2.1.1: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.1.1
.. _2.1.2: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.1.2
.. _2.1.3: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.1.3
.. _2.2: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.2
.. _2.3: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.3
.. _2.3.1: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.3.1
.. _2.3.2: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.3.2
.. _3.0b0: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/3.0b0
.. _3.0: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/3.0
.. _3.0.1: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/3.0.1
......@@ -14,6 +14,7 @@ Features
* Import breaks
* Import classes
* Import events
* Import exams
* Import exported Untis database via MySQL import
* Import exported Untis XML files
* Import holidays
......@@ -30,7 +31,7 @@ Licence
::
Copyright © 2018, 2019, 2020, 2021 Jonathan Weth <dev@jonathanweth.de>
Copyright © 2018, 2019, 2020, 2021, 2022 Jonathan Weth <dev@jonathanweth.de>
Copyright © 2018, 2019 Frank Poetzsch-Heffter <p-h@katharineum.de>
Copyright © 2019, 2020, 2021, 2022 Dominik George <dominik.george@teckids.org>
Copyright © 2019, 2020 Tom Teichler <tom.teichler@teckids.org>
......
......@@ -10,7 +10,7 @@ class UntisConfig(AppConfig):
}
licence = "EUPL-1.2+"
copyright_info = (
([2018, 2019, 2020, 2021], "Jonathan Weth", "dev@jonathanweth.de"),
([2018, 2019, 2020, 2021, 2022], "Jonathan Weth", "dev@jonathanweth.de"),
([2018, 2019], "Frank Poetzsch-Heffter", "p-h@katharineum.de"),
([2019, 2020, 2021, 2022], "Dominik George", "dominik.george@teckids.org"),
([2019, 2020], "Tom Teichler", "tom.teichler@teckids.org"),
......
......@@ -12,7 +12,7 @@ class CourseGroupNotFoundAndCreated(DataCheck):
"The Untis import created a new course group because no matching group has been found."
)
solve_options = {IgnoreSolveOption.name: IgnoreSolveOption}
solve_options = {IgnoreSolveOption._class_name: IgnoreSolveOption}
@classmethod
def run_check_data(cls):
......@@ -29,7 +29,7 @@ class CourseGroupNotFoundAndNotCreated(DataCheck):
"for a lesson because no matching group has been found."
)
solve_options = {IgnoreSolveOption.name: IgnoreSolveOption}
solve_options = {IgnoreSolveOption._class_name: IgnoreSolveOption}
@classmethod
def run_check_data(cls):
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 11:34+0100\n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -18,6 +18,22 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: aleksis/apps/untis/data_checks.py:9
msgid "Course groups created by the Untis import because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:12
msgid "The Untis import created a new course group because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:25
msgid "Course group not set by the Untis import because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:28
msgid "The Untis import didn't set a course group for a lesson because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr ""
......@@ -30,9 +46,9 @@ msgstr ""
#: aleksis/apps/untis/model_extensions.py:35
#: aleksis/apps/untis/model_extensions.py:38
#: aleksis/apps/untis/model_extensions.py:54
#: aleksis/apps/untis/model_extensions.py:57
#: aleksis/apps/untis/model_extensions.py:60
#: aleksis/apps/untis/model_extensions.py:63
#: aleksis/apps/untis/model_extensions.py:66
msgid "Untis import reference"
msgstr ""
......@@ -57,13 +73,18 @@ msgstr ""
msgid "Number of lesson element in Untis"
msgstr ""
#: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:57
msgid "Untis absence reference"
msgstr ""
#: aleksis/apps/untis/model_extensions.py:69
#: aleksis/apps/untis/model_extensions.py:72
#: aleksis/apps/untis/model_extensions.py:75
#: aleksis/apps/untis/model_extensions.py:78
msgid "UNTIS import reference"
msgstr ""
#: aleksis/apps/untis/models.py:4249
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr ""
......@@ -72,73 +93,93 @@ msgid "Untis: MySQL"
msgstr ""
#: aleksis/apps/untis/preferences.py:16
msgid "Update values of existing subjects"
msgid "School ID in Untis database"
msgstr ""
#: aleksis/apps/untis/preferences.py:24
msgid "Update short name of existing persons"
msgid "Update values of existing subjects"
msgstr ""
#: aleksis/apps/untis/preferences.py:32
msgid "Update name of existing persons"
msgid "Update short name of existing persons"
msgstr ""
#: aleksis/apps/untis/preferences.py:40
msgid "Update short name of existing groups"
msgid "Update name of existing persons"
msgstr ""
#: aleksis/apps/untis/preferences.py:48
msgid "Update name of existing groups"
msgid "Update short name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:64
msgid "Disambiguate name of new groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:63
#: aleksis/apps/untis/preferences.py:71
msgid "Overwrite group owners"
msgstr ""
#: aleksis/apps/untis/preferences.py:72
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr ""
#: aleksis/apps/untis/preferences.py:80
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr ""
#: aleksis/apps/untis/preferences.py:88
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:90
msgid "Build or search course groups for every course instead of setting classes as groups."
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgstr ""
#: aleksis/apps/untis/preferences.py:99
#: aleksis/apps/untis/preferences.py:105
msgid "Create non-existing course groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:106
msgid "Only used if 'Use course groups' is enabled."
msgstr ""
#: aleksis/apps/untis/preferences.py:114
msgid "Register a data problem if a course group has been not found."
msgstr ""
#: aleksis/apps/untis/preferences.py:122
msgid "Match course groups by a subset of parent groups if no 100% match is found"
msgstr ""
#: aleksis/apps/untis/preferences.py:100
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: aleksis/apps/untis/preferences.py:108
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:43
msgid "Import lesson {}"
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
msgid "Import lesson {}"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:49
msgid " Skip because missing times"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:111
#: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:314
#: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by Untis import"
msgstr ""
......@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 11:34+0100\n"
"PO-Revision-Date: 2022-04-29 14:23+0000\n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: 2022-08-03 16:40+0000\n"
"Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
"Language-Team: German <https://translate.edugit.org/projects/aleksis/"
"aleksis-app-untis/de/>\n"
......@@ -17,7 +17,31 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.8\n"
"X-Generator: Weblate 4.12.1\n"
#: aleksis/apps/untis/data_checks.py:9
msgid "Course groups created by the Untis import because no matching group has been found."
msgstr ""
"Durch Untis-Import erstellte Kursgruppen, weil keine passende Gruppe "
"gefunden wurde."
#: aleksis/apps/untis/data_checks.py:12
msgid "The Untis import created a new course group because no matching group has been found."
msgstr ""
"Der Untis-Import hat eine neue Kursgruppe erstellt, weil keine passende "
"Gruppe gefunden wurde."
#: aleksis/apps/untis/data_checks.py:25
msgid "Course group not set by the Untis import because no matching group has been found."
msgstr ""
"Kursgruppe nicht durch Untis-Import festgelegt, weil keine passende Gruppe "
"gefunden wurde."
#: aleksis/apps/untis/data_checks.py:28
msgid "The Untis import didn't set a course group for a lesson because no matching group has been found."
msgstr ""
"Der Untis-Import hat keine Kursgruppe für eine Stunde festgelegt, weil keine "
"passende Gruppe gefunden wurde."
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
......@@ -31,9 +55,9 @@ msgstr "Fächer mit Gruppen verknüpfen (für Untis-MySQL-Import)"
#: aleksis/apps/untis/model_extensions.py:35
#: aleksis/apps/untis/model_extensions.py:38
#: aleksis/apps/untis/model_extensions.py:54
#: aleksis/apps/untis/model_extensions.py:57
#: aleksis/apps/untis/model_extensions.py:60
#: aleksis/apps/untis/model_extensions.py:63
#: aleksis/apps/untis/model_extensions.py:66
msgid "Untis import reference"
msgstr "Untis-Importreferenz"
......@@ -58,13 +82,18 @@ msgstr "Unterrichtsnummer in Untis"
msgid "Number of lesson element in Untis"
msgstr "Nummer des Unterrichtselement in Untis"
#: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:57
msgid "Untis absence reference"
msgstr "Untis-Absenz-Referenz"
#: aleksis/apps/untis/model_extensions.py:69
#: aleksis/apps/untis/model_extensions.py:72
#: aleksis/apps/untis/model_extensions.py:75
#: aleksis/apps/untis/model_extensions.py:78
msgid "UNTIS import reference"
msgstr "Untis-Importreferenz"
#: aleksis/apps/untis/models.py:4249
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr "Kann Fächer zu Gruppen zuordnen"
......@@ -73,76 +102,96 @@ msgid "Untis: MySQL"
msgstr "Untis: MySQL"
#: aleksis/apps/untis/preferences.py:16
msgid "School ID in Untis database"
msgstr "Schul-ID in der Untis-Datenbank"
#: aleksis/apps/untis/preferences.py:24
msgid "Update values of existing subjects"
msgstr "Werte von bereits vorhanden Fächer aktualisieren"
#: aleksis/apps/untis/preferences.py:24
#: aleksis/apps/untis/preferences.py:32
msgid "Update short name of existing persons"
msgstr "Werte von bereits existierenden Person aktualisieren"
#: aleksis/apps/untis/preferences.py:32
#: aleksis/apps/untis/preferences.py:40
msgid "Update name of existing persons"
msgstr "Namen von bereits existierenden Person aktualisieren"
#: aleksis/apps/untis/preferences.py:40
#: aleksis/apps/untis/preferences.py:48
msgid "Update short name of existing groups"
msgstr "Kurznamen von existierenden Gruppen aktualisieren"
#: aleksis/apps/untis/preferences.py:48
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups"
msgstr "Namen von existierenden Gruppen aktualisieren"
#: aleksis/apps/untis/preferences.py:56
#: aleksis/apps/untis/preferences.py:64
msgid "Disambiguate name of new groups"
msgstr "Namen von neuen Gruppen eindeutig machen"
#: aleksis/apps/untis/preferences.py:63
#: aleksis/apps/untis/preferences.py:71
msgid "Overwrite group owners"
msgstr "Gruppenbesitzer überschreiben"
#: aleksis/apps/untis/preferences.py:72
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr "Namen von existierenden Räumen aktualisieren"
#: aleksis/apps/untis/preferences.py:80
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr "Bereits existierende Aufsichtsgebiete aktualisieren"
#: aleksis/apps/untis/preferences.py:88
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr "Kursgruppen nutzen"
#: aleksis/apps/untis/preferences.py:90
msgid "Build or search course groups for every course instead of setting classes as groups."
msgstr "Baut oder findet Kursgruppen für jeden Kurs anstatt die Klassengruppen zu setzen."
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgstr ""
"Sucht Kursgruppen für jeden Kurs, anstatt Klassen als Gruppen zu setzen."
#: aleksis/apps/untis/preferences.py:99
msgid "Match course groups by a subset of parent groups if no 100% match is found"
#: aleksis/apps/untis/preferences.py:105
msgid "Create non-existing course groups"
msgstr "Nicht existierende Kursgruppen erstellen"
#: aleksis/apps/untis/preferences.py:106
msgid "Only used if 'Use course groups' is enabled."
msgstr "Wird nur benutzt, wenn 'Kursgruppen nutzen' aktiviert ist."
#: aleksis/apps/untis/preferences.py:114
msgid "Register a data problem if a course group has been not found."
msgstr ""
"Kursgruppen über eine Teilmenge von Elterngruppen zuordnen, wenn keine 100%-"
"Zuordnung gefunden wurde"
"Ein Datenproblem registrieren, wenn eine Kursgruppe nicht gefunden wurde."
#: aleksis/apps/untis/preferences.py:100
#: aleksis/apps/untis/preferences.py:122
msgid "Match course groups by a subset of parent groups if no 100% match is found"
msgstr "Kursgruppen über eine Teilmenge von Elterngruppen zuordnen, wenn keine 100%-Zuordnung gefunden wurde"
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr "Funktioniert nur, wenn 'Kursgruppen benutzen' aktiviert ist."
#: aleksis/apps/untis/preferences.py:108
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr "Unvollständige Vertretungen ignorieren"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:43
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr "Klausur"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
msgid "Import lesson {}"
msgstr "Importiere Stunde {}"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
#: aleksis/apps/untis/util/mysql/importers/lessons.py:49
msgid " Skip because missing times"
msgstr " Wird wegen fehlender Zeiten übersprungen"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:111
#: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject"
msgstr " Wird wegen fehlendem Fach übersprungen"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:314
#: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by Untis import"
msgstr "Gelöscht durch Untis-Import"
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 11:34+0100\n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -18,6 +18,22 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: aleksis/apps/untis/data_checks.py:9
msgid "Course groups created by the Untis import because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:12
msgid "The Untis import created a new course group because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:25
msgid "Course group not set by the Untis import because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:28
msgid "The Untis import didn't set a course group for a lesson because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr ""
......@@ -30,9 +46,9 @@ msgstr ""
#: aleksis/apps/untis/model_extensions.py:35
#: aleksis/apps/untis/model_extensions.py:38
#: aleksis/apps/untis/model_extensions.py:54
#: aleksis/apps/untis/model_extensions.py:57
#: aleksis/apps/untis/model_extensions.py:60
#: aleksis/apps/untis/model_extensions.py:63
#: aleksis/apps/untis/model_extensions.py:66
msgid "Untis import reference"
msgstr ""
......@@ -57,13 +73,18 @@ msgstr ""
msgid "Number of lesson element in Untis"
msgstr ""
#: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:57
msgid "Untis absence reference"
msgstr ""
#: aleksis/apps/untis/model_extensions.py:69
#: aleksis/apps/untis/model_extensions.py:72
#: aleksis/apps/untis/model_extensions.py:75
#: aleksis/apps/untis/model_extensions.py:78
msgid "UNTIS import reference"
msgstr ""
#: aleksis/apps/untis/models.py:4249
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr ""
......@@ -72,73 +93,93 @@ msgid "Untis: MySQL"
msgstr ""
#: aleksis/apps/untis/preferences.py:16
msgid "Update values of existing subjects"
msgid "School ID in Untis database"
msgstr ""
#: aleksis/apps/untis/preferences.py:24
msgid "Update short name of existing persons"
msgid "Update values of existing subjects"
msgstr ""
#: aleksis/apps/untis/preferences.py:32
msgid "Update name of existing persons"
msgid "Update short name of existing persons"
msgstr ""
#: aleksis/apps/untis/preferences.py:40
msgid "Update short name of existing groups"
msgid "Update name of existing persons"
msgstr ""
#: aleksis/apps/untis/preferences.py:48
msgid "Update name of existing groups"
msgid "Update short name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:64
msgid "Disambiguate name of new groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:63
#: aleksis/apps/untis/preferences.py:71
msgid "Overwrite group owners"
msgstr ""
#: aleksis/apps/untis/preferences.py:72
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr ""
#: aleksis/apps/untis/preferences.py:80
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr ""
#: aleksis/apps/untis/preferences.py:88
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:90
msgid "Build or search course groups for every course instead of setting classes as groups."
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgstr ""
#: aleksis/apps/untis/preferences.py:99
#: aleksis/apps/untis/preferences.py:105
msgid "Create non-existing course groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:106
msgid "Only used if 'Use course groups' is enabled."
msgstr ""
#: aleksis/apps/untis/preferences.py:114
msgid "Register a data problem if a course group has been not found."
msgstr ""
#: aleksis/apps/untis/preferences.py:122
msgid "Match course groups by a subset of parent groups if no 100% match is found"
msgstr ""
#: aleksis/apps/untis/preferences.py:100
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: aleksis/apps/untis/preferences.py:108
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:43
msgid "Import lesson {}"
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
msgid "Import lesson {}"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:49
msgid " Skip because missing times"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:111
#: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:314
#: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by Untis import"
msgstr ""
......@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 11:34+0100\n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: 2020-08-25 17:42+0000\n"
"Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
"Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis-app-untis/la/>\n"
......@@ -18,6 +18,22 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.1.1\n"
#: aleksis/apps/untis/data_checks.py:9
msgid "Course groups created by the Untis import because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:12
msgid "The Untis import created a new course group because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:25
msgid "Course group not set by the Untis import because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:28
msgid "The Untis import didn't set a course group for a lesson because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr ""
......@@ -30,9 +46,9 @@ msgstr ""
#: aleksis/apps/untis/model_extensions.py:35
#: aleksis/apps/untis/model_extensions.py:38
#: aleksis/apps/untis/model_extensions.py:54
#: aleksis/apps/untis/model_extensions.py:57
#: aleksis/apps/untis/model_extensions.py:60
#: aleksis/apps/untis/model_extensions.py:63
#: aleksis/apps/untis/model_extensions.py:66
msgid "Untis import reference"
msgstr ""
......@@ -57,13 +73,18 @@ msgstr ""
msgid "Number of lesson element in Untis"
msgstr ""
#: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:57
msgid "Untis absence reference"
msgstr ""
#: aleksis/apps/untis/model_extensions.py:69
#: aleksis/apps/untis/model_extensions.py:72
#: aleksis/apps/untis/model_extensions.py:75
#: aleksis/apps/untis/model_extensions.py:78
msgid "UNTIS import reference"
msgstr ""
#: aleksis/apps/untis/models.py:4249
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr ""
......@@ -72,74 +93,94 @@ msgid "Untis: MySQL"
msgstr ""
#: aleksis/apps/untis/preferences.py:16
msgid "Update values of existing subjects"
msgid "School ID in Untis database"
msgstr ""
#: aleksis/apps/untis/preferences.py:24
msgid "Update short name of existing persons"
msgid "Update values of existing subjects"
msgstr ""
#: aleksis/apps/untis/preferences.py:32
msgid "Update name of existing persons"
msgid "Update short name of existing persons"
msgstr ""
#: aleksis/apps/untis/preferences.py:40
msgid "Update short name of existing groups"
msgid "Update name of existing persons"
msgstr ""
#: aleksis/apps/untis/preferences.py:48
msgid "Update name of existing groups"
msgid "Update short name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:64
msgid "Disambiguate name of new groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:63
#: aleksis/apps/untis/preferences.py:71
msgid "Overwrite group owners"
msgstr ""
#: aleksis/apps/untis/preferences.py:72
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr ""
#: aleksis/apps/untis/preferences.py:80
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr ""
#: aleksis/apps/untis/preferences.py:88
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:90
msgid "Build or search course groups for every course instead of setting classes as groups."
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgstr ""
#: aleksis/apps/untis/preferences.py:99
#: aleksis/apps/untis/preferences.py:105
msgid "Create non-existing course groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:106
msgid "Only used if 'Use course groups' is enabled."
msgstr ""
#: aleksis/apps/untis/preferences.py:114
msgid "Register a data problem if a course group has been not found."
msgstr ""
#: aleksis/apps/untis/preferences.py:122
msgid "Match course groups by a subset of parent groups if no 100% match is found"
msgstr ""
#: aleksis/apps/untis/preferences.py:100
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: aleksis/apps/untis/preferences.py:108
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:43
msgid "Import lesson {}"
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
msgid "Import lesson {}"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:49
msgid " Skip because missing times"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:111
#: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:314
#: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by Untis import"
msgstr ""
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 11:34+0100\n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -17,6 +17,22 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: aleksis/apps/untis/data_checks.py:9
msgid "Course groups created by the Untis import because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:12
msgid "The Untis import created a new course group because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:25
msgid "Course group not set by the Untis import because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:28
msgid "The Untis import didn't set a course group for a lesson because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr ""
......@@ -29,9 +45,9 @@ msgstr ""
#: aleksis/apps/untis/model_extensions.py:35
#: aleksis/apps/untis/model_extensions.py:38
#: aleksis/apps/untis/model_extensions.py:54
#: aleksis/apps/untis/model_extensions.py:57
#: aleksis/apps/untis/model_extensions.py:60
#: aleksis/apps/untis/model_extensions.py:63
#: aleksis/apps/untis/model_extensions.py:66
msgid "Untis import reference"
msgstr ""
......@@ -56,13 +72,18 @@ msgstr ""
msgid "Number of lesson element in Untis"
msgstr ""
#: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:57
msgid "Untis absence reference"
msgstr ""
#: aleksis/apps/untis/model_extensions.py:69
#: aleksis/apps/untis/model_extensions.py:72
#: aleksis/apps/untis/model_extensions.py:75
#: aleksis/apps/untis/model_extensions.py:78
msgid "UNTIS import reference"
msgstr ""
#: aleksis/apps/untis/models.py:4249
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr ""
......@@ -71,73 +92,93 @@ msgid "Untis: MySQL"
msgstr ""
#: aleksis/apps/untis/preferences.py:16
msgid "Update values of existing subjects"
msgid "School ID in Untis database"
msgstr ""
#: aleksis/apps/untis/preferences.py:24
msgid "Update short name of existing persons"
msgid "Update values of existing subjects"
msgstr ""
#: aleksis/apps/untis/preferences.py:32
msgid "Update name of existing persons"
msgid "Update short name of existing persons"
msgstr ""
#: aleksis/apps/untis/preferences.py:40
msgid "Update short name of existing groups"
msgid "Update name of existing persons"
msgstr ""
#: aleksis/apps/untis/preferences.py:48
msgid "Update name of existing groups"
msgid "Update short name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:64
msgid "Disambiguate name of new groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:63
#: aleksis/apps/untis/preferences.py:71
msgid "Overwrite group owners"
msgstr ""
#: aleksis/apps/untis/preferences.py:72
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr ""
#: aleksis/apps/untis/preferences.py:80
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr ""
#: aleksis/apps/untis/preferences.py:88
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:90
msgid "Build or search course groups for every course instead of setting classes as groups."
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgstr ""
#: aleksis/apps/untis/preferences.py:99
#: aleksis/apps/untis/preferences.py:105
msgid "Create non-existing course groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:106
msgid "Only used if 'Use course groups' is enabled."
msgstr ""
#: aleksis/apps/untis/preferences.py:114
msgid "Register a data problem if a course group has been not found."
msgstr ""
#: aleksis/apps/untis/preferences.py:122
msgid "Match course groups by a subset of parent groups if no 100% match is found"
msgstr ""
#: aleksis/apps/untis/preferences.py:100
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: aleksis/apps/untis/preferences.py:108
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:43
msgid "Import lesson {}"
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
msgid "Import lesson {}"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:49
msgid " Skip because missing times"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:111
#: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:314
#: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by Untis import"
msgstr ""
......@@ -3,41 +3,59 @@
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-23 12:56+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: 2022-07-03 06:13+0000\n"
"Last-Translator: Serhii Horichenko <m@sgg.im>\n"
"Language-Team: Russian <https://translate.edugit.org/projects/aleksis/"
"aleksis-app-untis/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
"%100>=11 && n%100<=14)? 2 : 3);\n"
"X-Generator: Weblate 4.12.1\n"
#: aleksis/apps/untis/data_checks.py:9
msgid "Course groups created by the Untis import because no matching group has been found."
msgid ""
"Course groups created by the Untis import because no matching group has been "
"found."
msgstr ""
"Группы курсов созданы через импорт Untis, т.к. не найдена соответствующая "
"группа."
#: aleksis/apps/untis/data_checks.py:12
msgid "The Untis import created a new course group because no matching group has been found."
msgid ""
"The Untis import created a new course group because no matching group has "
"been found."
msgstr ""
"Импорт Untis создал новую группу курсов, т.к. не найдена соответствующая "
"группа."
#: aleksis/apps/untis/data_checks.py:25
msgid "Course group not set by the Untis import because no matching group has been found."
msgid ""
"Course group not set by the Untis import because no matching group has been "
"found."
msgstr ""
"Группа курсов не установлена импортом Untis, т.к. не найдена соответствующая "
"группа."
#: aleksis/apps/untis/data_checks.py:28
msgid "The Untis import didn't set a course group for a lesson because no matching group has been found."
msgid ""
"The Untis import didn't set a course group for a lesson because no matching "
"group has been found."
msgstr ""
"Импорт Untis не установил группу курсов для урока, т.к. не найдена "
"соответствующая группа."
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr ""
msgstr "Связать предметы с группами (для импорта Untis MySQL)"
#: aleksis/apps/untis/model_extensions.py:9
#: aleksis/apps/untis/model_extensions.py:12
......@@ -51,127 +69,139 @@ msgstr ""
#: aleksis/apps/untis/model_extensions.py:60
#: aleksis/apps/untis/model_extensions.py:63
msgid "Untis import reference"
msgstr ""
msgstr "Ссылка на Untis-импорт"
#: aleksis/apps/untis/model_extensions.py:23
msgid "Untis school year ID"
msgstr ""
msgstr "ID учебного года в Untis"
#: aleksis/apps/untis/model_extensions.py:26
msgid "Untis school id"
msgstr ""
msgstr "ID школы в Untis"
#: aleksis/apps/untis/model_extensions.py:29
msgid "Untis version id"
msgstr ""
msgstr "ID версии Untis"
#: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in Untis"
msgstr ""
msgstr "ID урока в Untis"
#: aleksis/apps/untis/model_extensions.py:45
#: aleksis/apps/untis/model_extensions.py:50
msgid "Number of lesson element in Untis"
msgstr ""
msgstr "Количество элементов уроков в Untis"
#: aleksis/apps/untis/model_extensions.py:57
msgid "Untis absence reference"
msgstr "Ссылка на Untis-импорт"
#: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:69
#: aleksis/apps/untis/model_extensions.py:72
msgid "UNTIS import reference"
msgstr ""
msgstr "Ссылка импорта Untis"
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr ""
msgstr "Может назначать предметы группам"
#: aleksis/apps/untis/preferences.py:8
msgid "Untis: MySQL"
msgstr ""
msgstr "Untis: MySQL"
#: aleksis/apps/untis/preferences.py:16
msgid "School ID in Untis database"
msgstr ""
msgstr "ID школы в базе данных Untis"
#: aleksis/apps/untis/preferences.py:24
msgid "Update values of existing subjects"
msgstr ""
msgstr "Обновить значения существующих предметов"
#: aleksis/apps/untis/preferences.py:32
msgid "Update short name of existing persons"
msgstr ""
msgstr "Обновить короткие имена существущих лиц"
#: aleksis/apps/untis/preferences.py:40
msgid "Update name of existing persons"
msgstr ""
msgstr "Обновить имена существующих лиц"
#: aleksis/apps/untis/preferences.py:48
msgid "Update short name of existing groups"
msgstr ""
msgstr "Обновить короткие имена существующих груп"
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups"
msgstr ""
msgstr "Обновить имена имеющихся групп"
#: aleksis/apps/untis/preferences.py:64
msgid "Disambiguate name of new groups"
msgstr ""
msgstr "Уникальные имена для новых групп"
#: aleksis/apps/untis/preferences.py:71
msgid "Overwrite group owners"
msgstr ""
msgstr "Переписать владельцев групп"
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr ""
msgstr "Обновить названия существующих комнат"
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr ""
msgstr "Обновить существующие зоны контроля"
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr ""
msgstr "Использовать группы курса"
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgid ""
"Search course groups for every course instead of setting classes as groups."
msgstr ""
"Искать группы курса для каждого курса вместо установки классов в качестве "
"групп."
#: aleksis/apps/untis/preferences.py:105
msgid "Create non-existing course groups"
msgstr ""
msgstr "Создать отсутствующие группы курсов"
#: aleksis/apps/untis/preferences.py:106
msgid "Only used if 'Use course groups' is enabled."
msgstr ""
msgstr "Используется только при активном \"Использовании группы курса\"."
#: aleksis/apps/untis/preferences.py:114
msgid "Register a data problem if a course group has been not found."
msgstr ""
msgstr "Записать данные о проблеме если не найдена группа курса."
#: aleksis/apps/untis/preferences.py:122
msgid "Match course groups by a subset of parent groups if no 100% match is found"
msgstr ""
msgid ""
"Match course groups by a subset of parent groups if no 100% match is found"
msgstr "Если нет 100% совпадения подставлять группы курсов из родительских"
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
msgstr "Работает только при активном \"Использовании группы курса\"."
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
msgstr "Игнорировать неполные замены"
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr "Экзамен"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:44
msgid "Import lesson {}"
msgstr ""
msgstr "Импортировать урок {}"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:47
msgid " Skip because missing times"
msgstr ""
msgstr " Пропустить т.к. мало времени"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:112
msgid " Skip because missing subject"
msgstr ""
msgstr " Пропустить т.к. отсутствует предмет"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:333
msgid "Deleted by Untis import"
msgstr ""
msgstr "Удалено импортом Untis"
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-23 11:34+0100\n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -17,6 +17,22 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: aleksis/apps/untis/data_checks.py:9
msgid "Course groups created by the Untis import because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:12
msgid "The Untis import created a new course group because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:25
msgid "Course group not set by the Untis import because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/data_checks.py:28
msgid "The Untis import didn't set a course group for a lesson because no matching group has been found."
msgstr ""
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr ""
......@@ -29,9 +45,9 @@ msgstr ""
#: aleksis/apps/untis/model_extensions.py:35
#: aleksis/apps/untis/model_extensions.py:38
#: aleksis/apps/untis/model_extensions.py:54
#: aleksis/apps/untis/model_extensions.py:57
#: aleksis/apps/untis/model_extensions.py:60
#: aleksis/apps/untis/model_extensions.py:63
#: aleksis/apps/untis/model_extensions.py:66
msgid "Untis import reference"
msgstr ""
......@@ -56,13 +72,18 @@ msgstr ""
msgid "Number of lesson element in Untis"
msgstr ""
#: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:57
msgid "Untis absence reference"
msgstr ""
#: aleksis/apps/untis/model_extensions.py:69
#: aleksis/apps/untis/model_extensions.py:72
#: aleksis/apps/untis/model_extensions.py:75
#: aleksis/apps/untis/model_extensions.py:78
msgid "UNTIS import reference"
msgstr ""
#: aleksis/apps/untis/models.py:4249
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr ""
......@@ -71,73 +92,93 @@ msgid "Untis: MySQL"
msgstr ""
#: aleksis/apps/untis/preferences.py:16
msgid "Update values of existing subjects"
msgid "School ID in Untis database"
msgstr ""
#: aleksis/apps/untis/preferences.py:24
msgid "Update short name of existing persons"
msgid "Update values of existing subjects"
msgstr ""
#: aleksis/apps/untis/preferences.py:32
msgid "Update name of existing persons"
msgid "Update short name of existing persons"
msgstr ""
#: aleksis/apps/untis/preferences.py:40
msgid "Update short name of existing groups"
msgid "Update name of existing persons"
msgstr ""
#: aleksis/apps/untis/preferences.py:48
msgid "Update name of existing groups"
msgid "Update short name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:64
msgid "Disambiguate name of new groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:63
#: aleksis/apps/untis/preferences.py:71
msgid "Overwrite group owners"
msgstr ""
#: aleksis/apps/untis/preferences.py:72
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr ""
#: aleksis/apps/untis/preferences.py:80
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr ""
#: aleksis/apps/untis/preferences.py:88
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:90
msgid "Build or search course groups for every course instead of setting classes as groups."
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgstr ""
#: aleksis/apps/untis/preferences.py:99
#: aleksis/apps/untis/preferences.py:105
msgid "Create non-existing course groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:106
msgid "Only used if 'Use course groups' is enabled."
msgstr ""
#: aleksis/apps/untis/preferences.py:114
msgid "Register a data problem if a course group has been not found."
msgstr ""
#: aleksis/apps/untis/preferences.py:122
msgid "Match course groups by a subset of parent groups if no 100% match is found"
msgstr ""
#: aleksis/apps/untis/preferences.py:100
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: aleksis/apps/untis/preferences.py:108
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:43
msgid "Import lesson {}"
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
msgid "Import lesson {}"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:49
msgid " Skip because missing times"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:111
#: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:314
#: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by Untis import"
msgstr ""
......@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-04-23 12:56+0000\n"
"PO-Revision-Date: 2022-04-29 14:23+0000\n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: 2022-07-03 06:13+0000\n"
"Last-Translator: Serhii Horichenko <m@sgg.im>\n"
"Language-Team: Ukrainian <https://translate.edugit.org/projects/aleksis/"
"aleksis-app-untis/uk/>\n"
......@@ -20,34 +20,42 @@ msgstr ""
"? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > "
"14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % "
"100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
"X-Generator: Weblate 4.8\n"
"X-Generator: Weblate 4.12.1\n"
#: aleksis/apps/untis/data_checks.py:9
msgid "Course groups created by the Untis import because no matching group has been found."
msgid ""
"Course groups created by the Untis import because no matching group has been "
"found."
msgstr ""
"Групи курсів створені імпортом Untis, оскільки не знайдено відповідної групи."
#: aleksis/apps/untis/data_checks.py:12
msgid "The Untis import created a new course group because no matching group has been found."
msgid ""
"The Untis import created a new course group because no matching group has "
"been found."
msgstr ""
"Імпорт Untis створив нову групу курсів, оскільки не знайдено відповідної "
"групи."
#: aleksis/apps/untis/data_checks.py:25
msgid "Course group not set by the Untis import because no matching group has been found."
msgid ""
"Course group not set by the Untis import because no matching group has been "
"found."
msgstr ""
"Група курсів не встановлена імпортуванням Untis, оскільки не знайдено "
"відповідної групи."
#: aleksis/apps/untis/data_checks.py:28
msgid "The Untis import didn't set a course group for a lesson because no matching group has been found."
msgid ""
"The Untis import didn't set a course group for a lesson because no matching "
"group has been found."
msgstr ""
"Імпорт Untis не встановив групу курсів для уроку, оскільки не було знайдено "
"відповідної групи."
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr "Зв'язати теми з групами (для імпорту Untis MySQL)"
msgstr "Зв'язати предмети з групами (для імпорту Untis MySQL)"
#: aleksis/apps/untis/model_extensions.py:9
#: aleksis/apps/untis/model_extensions.py:12
......@@ -57,19 +65,20 @@ msgstr "Зв'язати теми з групами (для імпорту Untis
#: aleksis/apps/untis/model_extensions.py:35
#: aleksis/apps/untis/model_extensions.py:38
#: aleksis/apps/untis/model_extensions.py:54
#: aleksis/apps/untis/model_extensions.py:57
#: aleksis/apps/untis/model_extensions.py:60
#: aleksis/apps/untis/model_extensions.py:63
#: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:57
msgid "Untis import reference"
msgstr "Посилання на Untis-імпорт"
#: aleksis/apps/untis/model_extensions.py:23
msgid "Untis school year ID"
msgstr "ID навчального року Untis"
msgstr "ID навчального року в Untis"
#: aleksis/apps/untis/model_extensions.py:26
msgid "Untis school id"
msgstr "ID школи Untis"
msgstr "ID школи в Untis"
#: aleksis/apps/untis/model_extensions.py:29
msgid "Untis version id"
......@@ -84,9 +93,15 @@ msgstr "ID уроку в Untis"
msgid "Number of lesson element in Untis"
msgstr "Кількість елементів уроків в Untis"
#: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:57
msgid "Untis absence reference"
msgstr "Посилання на Untis-імпорт"
#: aleksis/apps/untis/model_extensions.py:69
#: aleksis/apps/untis/model_extensions.py:72
#: aleksis/apps/untis/model_extensions.py:75
#: aleksis/apps/untis/model_extensions.py:78
#: aleksis/apps/untis/model_extensions.py:66
msgid "UNTIS import reference"
msgstr "Посилання імпорту Untis"
......@@ -143,7 +158,8 @@ msgid "Use course groups"
msgstr "Використовувати групи курсу"
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgid ""
"Search course groups for every course instead of setting classes as groups."
msgstr "Шукати групи курсу для кожного курсу замість установки класів як груп."
#: aleksis/apps/untis/preferences.py:105
......@@ -159,7 +175,8 @@ msgid "Register a data problem if a course group has been not found."
msgstr "Записати дані щодо проблеми якщо група курсу не знайдена."
#: aleksis/apps/untis/preferences.py:122
msgid "Match course groups by a subset of parent groups if no 100% match is found"
msgid ""
"Match course groups by a subset of parent groups if no 100% match is found"
msgstr ""
"Співставляти групи курсів за батьківськими групами якщо не знайдена 100% "
"відповідність"
......@@ -172,18 +189,26 @@ msgstr "Працює лише якщо активне \"Використовув
msgid "Ignore incomplete substitutions"
msgstr "Ігнорувати неповні заміни"
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr "Іспит"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
#: aleksis/apps/untis/util/mysql/importers/lessons.py:44
msgid "Import lesson {}"
msgstr "Імпортувати урок {}"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:49
#: aleksis/apps/untis/util/mysql/importers/lessons.py:47
msgid " Skip because missing times"
msgstr " Пропустити через брак часу"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:110
#: aleksis/apps/untis/util/mysql/importers/lessons.py:112
msgid " Skip because missing subject"
msgstr " Пропустити через відсутність предмету"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:331
#: aleksis/apps/untis/util/mysql/importers/lessons.py:333
msgid "Deleted by Untis import"
msgstr "Видалене імпортом Untis"
from datetime import date, timedelta
from django.core.management.base import BaseCommand
from django.utils import timezone
from calendarweek import CalendarWeek
from tqdm import tqdm
from aleksis.apps.chronos.models import (
Absence,
Event,
Exam,
ExtraLesson,
Holiday,
LessonSubstitution,
ValidityRange,
)
from aleksis.core.models import SchoolTerm
class Command(BaseCommand):
help = "Move all dates to current school year" # noqa
def add_arguments(self, parser):
parser.add_argument("--dry", action="store_true")
def translate_date_start_end(self, name: str, qs):
self.stdout.write(name.upper())
for instance in tqdm(qs):
date_start = instance.date_start
date_end = instance.date_end
date_start_new = date_start + self.time_delta
date_end_new = date_end + self.time_delta
self.stdout.write(f"{date_start}{date_start_new}; {date_end}{date_end_new}")
instance.date_start = date_start_new
instance.date_end = date_end_new
if not self.dry:
instance.save()
def translate_date(self, name: str, qs):
self.stdout.write(name.upper())
for instance in tqdm(qs):
date_old = instance.date
date_new = date_old + self.time_delta
self.stdout.write(f"{date_old}{date_new}")
instance.date = date_new
if not self.dry:
instance.save()
def translate_week_year(self, name: str, qs):
self.stdout.write(name.upper())
for instance in tqdm(qs):
date_old = instance.date
date_new = instance.date + self.time_delta
week_new = CalendarWeek.from_date(date_new)
self.stdout.write(f"{date_old}, {instance.week}{date_new}, {week_new.week}")
instance.year = date_new.year
instance.week = week_new.week
if not self.dry:
instance.save()
def handle(self, *args, **options):
self.dry = options["dry"]
school_terms = SchoolTerm.objects.order_by("-date_end")
if not school_terms.exists():
raise RuntimeError("No school term available.")
school_term = school_terms.first()
self.stdout.write(f"Used school term: {school_term}")
date_start = school_term.date_start
date_end = school_term.date_end
current_date = timezone.now().date()
current_year = current_date.year
if date_start.month <= current_date.month and date_start.day < current_date.day:
current_year -= 1
date_end = date(year=current_year, day=date_start.day, month=date_start.month)
self.stdout.write(f"{current_year}, {date_end}")
days = (date_end - date_start).days
self.weeks = round(days / 7)
self.time_delta = timedelta(days=self.weeks * 7)
self.stdout.write(f"{days}, {self.weeks}")
self.translate_date_start_end("SCHOOL TERM", [school_term])
self.translate_date_start_end(
"VALIDITY RANGES", ValidityRange.objects.filter(school_term=school_term)
)
if not self.weeks:
self.stdout.write(self.style.ERROR("There are no data that have to be moved."))
return
self.translate_week_year(
"SUBSTITUTIONS",
LessonSubstitution.objects.filter(
lesson_period__lesson__validity__school_term=school_term
),
)
self.translate_week_year(
"EXTRA LESSONS", ExtraLesson.objects.filter(school_term=school_term)
)
self.translate_date_start_end("ABSENCES", Absence.objects.filter(school_term=school_term))
self.translate_date("EXAMS", Exam.objects.filter(school_term=school_term))
self.translate_date_start_end(
"HOLIDAYS", Holiday.objects.within_dates(date_start, date_end)
)
self.translate_date_start_end("EVENTS", Event.objects.filter(school_term=school_term))
......@@ -25,6 +25,6 @@ class Command(BaseCommand):
def handle(self, *args, **options):
command = COMMANDS_BY_NAME[options["command"]]
background = options["background"]
school_id = options.get("school_id", None)
version = options.get("plan_version", None)
command.run(background=background, version=version)
school_id = options.get("school_id")
version = options.get("plan_version")
command.run(background=background, school_id=school_id, version=version)