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 (358)
Showing
with 1831 additions and 237 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 # Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class *$py.class
*.py[cod]
__pycache__/
# Distribution / packaging # Distribution / packaging
*.egg
*.egg-info/
.Python .Python
.eggs/
.installed.cfg
build/ build/
develop-eggs/ develop-eggs/
dist/ dist/
downloads/ downloads/
eggs/ eggs/
.eggs/
lib/ lib/
lib64/ lib64/
parts/ parts/
sdist/ sdist/
var/ var/
wheels/ wheels/
*.egg-info/
.installed.cfg
*.egg
# Installer logs # Installer logs
pip-log.txt
pip-delete-this-directory.txt pip-delete-this-directory.txt
pip-log.txt
# Translations # Translations
*.mo *.mo
...@@ -39,20 +39,60 @@ local_settings.py ...@@ -39,20 +39,60 @@ local_settings.py
# Environments # Environments
.env .env
.venv .venv
ENV/
env/ env/
venv/ venv/
ENV/
# Editors # Editors
*~ *~
DEADJOE DEADJOE
\#*# \#*#
# IntelliJ
.idea
.idea/
# VSCode
.vscode/
.history/
*.code-workspace
# Database # Database
db.sqlite3 db.sqlite3
# Sphinx # Sphinx
docs/_build/ docs/_build/
# Test # 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/ .tox/
htmlcov/
# Data
maintenance_mode_state.txt
media/
aleksis/core/static/style.css
include: include:
- project: "AlekSIS/official/AlekSIS" - project: "AlekSIS/official/AlekSIS"
file: /ci/general.yml file: /ci/general.yml
# - project: "AlekSIS/official/AlekSIS" - project: "AlekSIS/official/AlekSIS"
# file: /ci/test/test.yml file: /ci/prepare/lock.yml
- project: "AlekSIS/official/AlekSIS" # - project: "AlekSIS/official/AlekSIS"
file: /ci/test/lint.yml # file: /ci/test/test.yml
- project: "AlekSIS/official/AlekSIS" - project: "AlekSIS/official/AlekSIS"
file: /ci/test/security.yml file: /ci/test/lint.yml
- project: "AlekSIS/official/AlekSIS" - project: "AlekSIS/official/AlekSIS"
file: /ci/build/dist.yml file: /ci/test/security.yml
- project: "AlekSIS/official/AlekSIS" - project: "AlekSIS/official/AlekSIS"
file: "/ci/deploy/trigger_dist.yml" file: /ci/build/dist.yml
- project: "AlekSIS/official/AlekSIS" - project: "AlekSIS/official/AlekSIS"
file: /ci/publish/pypi.yml 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/
...@@ -6,6 +6,219 @@ All notable changes to this project will be documented in this file. ...@@ -6,6 +6,219 @@ All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog`_, The format is based on `Keep a Changelog`_,
and this project adheres to `Semantic Versioning`_. 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
~~~~~
* Matching for groups while importing lessons was broken in some cases.
* Import commands `current_next` and `current_future` imported all terms.
* Untis objects with special characters like commas in their names broke the import.
* Lessons weren't cancelled if a class is absent.
`2.2`_ - 2022-04-10
-------------------
Added
~~~~~
* Add fuzzy matching mode for searching course groups: If no 100 % match is found,
the importer will search a match by a subset of parent groups.
* Register data match failures as data check problems.
Changed
~~~~~~~
* Let untis_import_mysql management command default to ``current`` instead of all
to prevent accidental imports of old plans
* Use new change tracker from Chronos to trigger notifications
Fixed
~~~~~
* Search course groups not only by parent groups and subject, but also take
the teachers (group owners) into account
* Don't recreate lesson periods if they change, but just update them.
* Import failed if there were multiple versions for a term in the future.
`2.1.3`_ - 2022-02-06
---------------------
Fixed
~~~~~
* With ignoring of incomplete subsitutions enabled,
substitutions which consisted just of a comment were skipped.
`2.1.2`_ - 2022-02-06
---------------------
Fixed
~~~~~
* Do not import incomplete substitutions.
`2.1.1`_ - 2022-01-29
---------------------
Fixed
~~~~~
* Import now only imports one plan version
`2.1`_ - 2022-01-13
-------------------
Added
~~~~~
* Allow configuring database options
Changed
~~~~~~~
* Wrap all imports in complete revisions to make it possible to undo them completely and to track changes correctly.
* Group names are now optionally disambiguated on collisions in Untis
Fixed
~~~~~
* Import failed if there were classes without class teachers.
* Management command ``move_dates_for_testing`` throwed misleading errors.
* Events weren't always deleted due to wrong date filters.
* Celery tasks always ran the last import command and not the supposed one.
`2.0`_ - 2021-10-30
-------------------
Added
~~~~~
* Add script for moving all Chronos dates to the current (school) year (only for testing purposes).
* Add demo data as Untis dump (also only for testing purposes).
Changed
~~~~~~~
* Management commands can run the import in the foreground or in the background.
* The management commands were merged to one with an argument to call the subcommands.
`2.0rc3`_ - 2021-09-30
----------------------
Fixed
~~~~~
* Skip extra lessons without a subject.
* Fix problems with lesson parts without a room and lesson parts with two courses and one teacher in a room.
`2.0rc2`_ - 2021-07-30
----------------------
Fixed
~~~~~
* Get validity ranges by Untis ID and the corresponding school term.
`2.0rc1`_ - 2021-06-23
----------------------
Fixed
~~~~~
* Preference section verbose names were displayed in server language and not
user language (fixed by using gettext_lazy).
`2.0b0`_ - 2021-05-21 `2.0b0`_ - 2021-05-21
--------------------- ---------------------
...@@ -78,6 +291,21 @@ Fixed ...@@ -78,6 +291,21 @@ Fixed
.. _Keep a Changelog: https://keepachangelog.com/en/1.0.0/ .. _Keep a Changelog: https://keepachangelog.com/en/1.0.0/
.. _Semantic Versioning: https://semver.org/spec/v2.0.0.html .. _Semantic Versioning: https://semver.org/spec/v2.0.0.html
.. _1.0a1: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/1.0a1 .. _1.0a1: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/1.0a1
.. _2.0a2: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/2.0a2 .. _2.0a2: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.0a2
.. _2.0b0: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/2.0b0 .. _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
...@@ -4,7 +4,7 @@ AlekSIS (School Information System) — App for Untis import ...@@ -4,7 +4,7 @@ AlekSIS (School Information System) — App for Untis import
AlekSIS AlekSIS
------- -------
This is an application for use with the `AlekSIS`_ platform. This is an application for use with the `AlekSIS®`_ platform.
Features Features
-------- --------
...@@ -14,6 +14,7 @@ Features ...@@ -14,6 +14,7 @@ Features
* Import breaks * Import breaks
* Import classes * Import classes
* Import events * Import events
* Import exams
* Import exported Untis database via MySQL import * Import exported Untis database via MySQL import
* Import exported Untis XML files * Import exported Untis XML files
* Import holidays * Import holidays
...@@ -30,9 +31,9 @@ Licence ...@@ -30,9 +31,9 @@ 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 © 2018, 2019 Frank Poetzsch-Heffter <p-h@katharineum.de>
Copyright © 2019, 2020 Dominik George <dominik.george@teckids.org> Copyright © 2019, 2020, 2021, 2022 Dominik George <dominik.george@teckids.org>
Copyright © 2019, 2020 Tom Teichler <tom.teichler@teckids.org> Copyright © 2019, 2020 Tom Teichler <tom.teichler@teckids.org>
Copyright © 2019 Julian Leucker <leuckeju@katharineum.de> Copyright © 2019 Julian Leucker <leuckeju@katharineum.de>
Copyright © 2019 mirabilos <thorsten.glaser@teckids.org> Copyright © 2019 mirabilos <thorsten.glaser@teckids.org>
...@@ -44,5 +45,13 @@ full licence text or on the `European Union Public Licence`_ website ...@@ -44,5 +45,13 @@ full licence text or on the `European Union Public Licence`_ website
https://joinup.ec.europa.eu/collection/eupl/guidelines-users-and-developers https://joinup.ec.europa.eu/collection/eupl/guidelines-users-and-developers
(including all other official language versions). (including all other official language versions).
.. _AlekSIS: https://aleksis.org/ Trademark
---------
AlekSIS® is a registered trademark of the AlekSIS open source project, represented
by Teckids e.V. Please refer to the `trademark policy`_ for hints on using the trademark
AlekSIS®.
.. _AlekSIS®: https://aleksis.org/
.. _European Union Public Licence: https://eupl.eu/ .. _European Union Public Licence: https://eupl.eu/
.. _trademark policy: https://aleksis.org/pages/about
...@@ -3,16 +3,16 @@ from aleksis.core.util.apps import AppConfig ...@@ -3,16 +3,16 @@ from aleksis.core.util.apps import AppConfig
class UntisConfig(AppConfig): class UntisConfig(AppConfig):
name = "aleksis.apps.untis" name = "aleksis.apps.untis"
verbose_name = "AlekSIS — UNTIS interface" verbose_name = "AlekSIS — Untis interface"
urls = { urls = {
"Repository": "https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/", "Repository": "https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/",
} }
licence = "EUPL-1.2+" licence = "EUPL-1.2+"
copyright_info = ( 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"), ([2018, 2019], "Frank Poetzsch-Heffter", "p-h@katharineum.de"),
([2019, 2020], "Dominik George", "dominik.george@teckids.org"), ([2019, 2020, 2021, 2022], "Dominik George", "dominik.george@teckids.org"),
([2019, 2020], "Tom Teichler", "tom.teichler@teckids.org"), ([2019, 2020], "Tom Teichler", "tom.teichler@teckids.org"),
([2019], "Julian Leucker", "leuckeju@katharineum.de"), ([2019], "Julian Leucker", "leuckeju@katharineum.de"),
([2019], "mirabilos", "thorsten.glaser@teckids.org"), ([2019], "mirabilos", "thorsten.glaser@teckids.org"),
......
from typing import Optional
from django.db.models import Q, QuerySet
from django.utils.functional import classproperty
from aleksis.apps.untis.util.mysql.importers.terms import (
get_future_terms_for_date,
get_future_terms_for_date_query,
get_terms,
get_terms_for_date,
get_terms_for_date_query,
)
from .util.mysql.main import untis_import_mysql as _untis_import_mysql
class ImportCommand:
"""A generic Untis import command."""
name = None
@classproperty
def task_name(cls) -> str: # noqa
"""Get the name for the related Celery task."""
return f"untis_import_mysql_{cls.name}"
@classmethod
def get_terms(cls) -> Optional[QuerySet]:
"""Return which terms should be imported."""
return None
@classmethod
def run(
cls,
background: bool = False,
school_id: Optional[int] = None,
version: Optional[int] = None,
):
"""Run the import command (foreground/background)."""
if background:
from .tasks import TASKS
task = TASKS[cls.task_name]
task.delay(version=version)
else:
_untis_import_mysql(cls.get_terms(), school_id=school_id, version=version)
class CurrentImportCommand(ImportCommand):
"""Import data of current term from Untis."""
name = "current"
@classmethod
def get_terms(cls) -> Optional[QuerySet]:
return get_terms_for_date()
class FutureImportCommand(ImportCommand):
"""Import data of future terms from Untis."""
name = "future"
@classmethod
def get_terms(cls) -> Optional[QuerySet]:
return get_future_terms_for_date()
class AllImportCommand(ImportCommand):
name = "all"
class CurrentNextImportCommand(ImportCommand):
"""Import data of the current and next term from Untis."""
name = "current_next"
@classmethod
def get_terms(cls) -> Optional[QuerySet]:
future_terms = get_future_terms_for_date()
if future_terms.exists():
future_term = future_terms.first()
return get_terms().filter(
get_terms_for_date_query()
| Q(
school_id=future_term.school_id,
schoolyear_id=future_term.schoolyear_id,
version_id=future_term.version_id,
term_id=future_term.term_id,
)
)
else:
return get_terms_for_date()
class CurrentFutureImportCommand(ImportCommand):
"""Import data of the current and future terms from Untis."""
name = "current_future"
@classmethod
def get_terms(cls) -> Optional[QuerySet]:
terms = get_terms().filter(get_future_terms_for_date_query() | get_terms_for_date_query())
return terms
COMMANDS_BY_NAME = {c.name: c for c in ImportCommand.__subclasses__()}
COMMANDS_BY_TASK_NAME = {c.task_name: c for c in ImportCommand.__subclasses__()}
from django.utils.translation import gettext_lazy as _
from aleksis.core.data_checks import DataCheck, IgnoreSolveOption
class CourseGroupNotFoundAndCreated(DataCheck):
name = "untis_mysql_course_group_not_found_and_created"
verbose_name = _(
"Course groups created by the Untis import because no matching group has been found."
)
problem_name = _(
"The Untis import created a new course group because no matching group has been found."
)
solve_options = {IgnoreSolveOption._class_name: IgnoreSolveOption}
@classmethod
def run_check_data(cls):
pass
class CourseGroupNotFoundAndNotCreated(DataCheck):
name = "untis_not_created_not_primary_source"
verbose_name = _(
"Course group not set by the Untis import because no matching group has been found."
)
problem_name = _(
"The Untis import didn't set a course group "
"for a lesson because no matching group has been found."
)
solve_options = {IgnoreSolveOption._class_name: IgnoreSolveOption}
@classmethod
def run_check_data(cls):
pass
...@@ -8,7 +8,7 @@ msgid "" ...@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-20 21:06+0200\n" "POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
...@@ -18,8 +18,24 @@ msgstr "" ...@@ -18,8 +18,24 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "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" "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 #: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for UNTIS MySQL import)" msgid "Link subjects to groups (for Untis MySQL import)"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:9 #: aleksis/apps/untis/model_extensions.py:9
...@@ -30,96 +46,140 @@ msgstr "" ...@@ -30,96 +46,140 @@ msgstr ""
#: aleksis/apps/untis/model_extensions.py:35 #: aleksis/apps/untis/model_extensions.py:35
#: aleksis/apps/untis/model_extensions.py:38 #: aleksis/apps/untis/model_extensions.py:38
#: aleksis/apps/untis/model_extensions.py:54 #: 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:60
#: aleksis/apps/untis/model_extensions.py:63 #: aleksis/apps/untis/model_extensions.py:63
#: aleksis/apps/untis/model_extensions.py:66 #: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:69 msgid "Untis import reference"
#: aleksis/apps/untis/model_extensions.py:72
msgid "UNTIS import reference"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:23 #: aleksis/apps/untis/model_extensions.py:23
msgid "UNTIS school year ID" msgid "Untis school year ID"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:26 #: aleksis/apps/untis/model_extensions.py:26
msgid "UNTIS school id" msgid "Untis school id"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:29 #: aleksis/apps/untis/model_extensions.py:29
msgid "UNTIS version id" msgid "Untis version id"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:41 #: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in UNTIS" msgid "Lesson id in Untis"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:45 #: aleksis/apps/untis/model_extensions.py:45
#: aleksis/apps/untis/model_extensions.py:50 #: aleksis/apps/untis/model_extensions.py:50
msgid "Number of lesson element in UNTIS" msgid "Number of lesson element in Untis"
msgstr ""
#: 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 "" msgstr ""
#: aleksis/apps/untis/models.py:4221 #: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups" msgid "Can assign subjects to groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:8 #: aleksis/apps/untis/preferences.py:8
msgid "UNTIS: MySQL" msgid "Untis: MySQL"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:16 #: aleksis/apps/untis/preferences.py:16
msgid "Update values of existing subjects" msgid "School ID in Untis database"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:24 #: aleksis/apps/untis/preferences.py:24
msgid "Update short name of existing persons" msgid "Update values of existing subjects"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:32 #: aleksis/apps/untis/preferences.py:32
msgid "Update name of existing persons" msgid "Update short name of existing persons"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:40 #: aleksis/apps/untis/preferences.py:40
msgid "Update short name of existing groups" msgid "Update name of existing persons"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:48 #: aleksis/apps/untis/preferences.py:48
msgid "Update short name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups" msgid "Update name of existing groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:55 #: aleksis/apps/untis/preferences.py:64
msgid "Disambiguate name of new groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:71
msgid "Overwrite group owners" msgid "Overwrite group owners"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:64 #: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms" msgid "Update name of existing rooms"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:72 #: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas" msgid "Update existing supervision areas"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:80 #: aleksis/apps/untis/preferences.py:96
msgid "Use course groups" msgid "Use course groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:82 #: aleksis/apps/untis/preferences.py:97
msgid "Build or 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 "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:43 #: aleksis/apps/untis/preferences.py:105
msgid "Import lesson {}" 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:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46 #: 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" msgid " Skip because missing times"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:105 #: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject" msgid " Skip because missing subject"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:266 #: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by UNTIS import" msgid "Deleted by Untis import"
msgstr "" msgstr ""
...@@ -7,20 +7,45 @@ msgid "" ...@@ -7,20 +7,45 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-20 21:06+0200\n" "POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: 2020-12-05 20:52+0000\n" "PO-Revision-Date: 2022-08-03 16:40+0000\n"
"Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n" "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
"Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis-app-untis/de/>\n" "Language-Team: German <https://translate.edugit.org/projects/aleksis/"
"aleksis-app-untis/de/>\n"
"Language: de_DE\n" "Language: de_DE\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2\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 #: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for UNTIS MySQL import)" msgid "Link subjects to groups (for Untis MySQL import)"
msgstr "Fächer mit Gruppen verknüpfen (für UNTIS-MySQL-Import)" msgstr "Fächer mit Gruppen verknüpfen (für Untis-MySQL-Import)"
#: aleksis/apps/untis/model_extensions.py:9 #: aleksis/apps/untis/model_extensions.py:9
#: aleksis/apps/untis/model_extensions.py:12 #: aleksis/apps/untis/model_extensions.py:12
...@@ -30,99 +55,145 @@ msgstr "Fächer mit Gruppen verknüpfen (für UNTIS-MySQL-Import)" ...@@ -30,99 +55,145 @@ 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:35
#: aleksis/apps/untis/model_extensions.py:38 #: aleksis/apps/untis/model_extensions.py:38
#: aleksis/apps/untis/model_extensions.py:54 #: 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:60
#: aleksis/apps/untis/model_extensions.py:63 #: aleksis/apps/untis/model_extensions.py:63
#: aleksis/apps/untis/model_extensions.py:66 #: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:69 msgid "Untis import reference"
#: aleksis/apps/untis/model_extensions.py:72 msgstr "Untis-Importreferenz"
msgid "UNTIS import reference"
msgstr "UNTIS-Importreferenz"
#: aleksis/apps/untis/model_extensions.py:23 #: aleksis/apps/untis/model_extensions.py:23
msgid "UNTIS school year ID" msgid "Untis school year ID"
msgstr "UNTIS-Schuljahr-ID" msgstr "Untis-Schuljahr-ID"
#: aleksis/apps/untis/model_extensions.py:26 #: aleksis/apps/untis/model_extensions.py:26
msgid "UNTIS school id" msgid "Untis school id"
msgstr "UNTIS-Schul-ID" msgstr "Untis-Schul-ID"
#: aleksis/apps/untis/model_extensions.py:29 #: aleksis/apps/untis/model_extensions.py:29
msgid "UNTIS version id" msgid "Untis version id"
msgstr "UNTIS-Versions-ID" msgstr "Untis-Versions-ID"
#: aleksis/apps/untis/model_extensions.py:41 #: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in UNTIS" msgid "Lesson id in Untis"
msgstr "Unterrichtsnummer in UNTIS" msgstr "Unterrichtsnummer in Untis"
#: aleksis/apps/untis/model_extensions.py:45 #: aleksis/apps/untis/model_extensions.py:45
#: aleksis/apps/untis/model_extensions.py:50 #: aleksis/apps/untis/model_extensions.py:50
msgid "Number of lesson element in UNTIS" msgid "Number of lesson element in Untis"
msgstr "Nummer des Unterrichtselement in UNTIS" msgstr "Nummer des Unterrichtselement in Untis"
#: aleksis/apps/untis/model_extensions.py:57
msgid "Untis absence reference"
msgstr "Untis-Absenz-Referenz"
#: aleksis/apps/untis/models.py:4221 #: 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:4253
msgid "Can assign subjects to groups" msgid "Can assign subjects to groups"
msgstr "Kann Fächer zu Gruppen zuzuordnen" msgstr "Kann Fächer zu Gruppen zuordnen"
#: aleksis/apps/untis/preferences.py:8 #: aleksis/apps/untis/preferences.py:8
msgid "UNTIS: MySQL" msgid "Untis: MySQL"
msgstr "UNTIS: MySQL" msgstr "Untis: MySQL"
#: aleksis/apps/untis/preferences.py:16 #: 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" msgid "Update values of existing subjects"
msgstr "Werte von bereits vorhanden Fächer aktualisieren" 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" msgid "Update short name of existing persons"
msgstr "Werte von bereits existierenden Person aktualisieren" 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" msgid "Update name of existing persons"
msgstr "Namen von bereits existierenden Person aktualisieren" 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" msgid "Update short name of existing groups"
msgstr "Kurznamen von existierenden Gruppen aktualisieren" msgstr "Kurznamen von existierenden Gruppen aktualisieren"
#: aleksis/apps/untis/preferences.py:48 #: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups" msgid "Update name of existing groups"
msgstr "Namen von existierenden Gruppen aktualisieren" msgstr "Namen von existierenden Gruppen aktualisieren"
#: aleksis/apps/untis/preferences.py:55 #: aleksis/apps/untis/preferences.py:64
msgid "Disambiguate name of new groups"
msgstr "Namen von neuen Gruppen eindeutig machen"
#: aleksis/apps/untis/preferences.py:71
msgid "Overwrite group owners" msgid "Overwrite group owners"
msgstr "Gruppenbesitzer überschreiben" msgstr "Gruppenbesitzer überschreiben"
#: aleksis/apps/untis/preferences.py:64 #: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms" msgid "Update name of existing rooms"
msgstr "Namen von existierenden Räumen aktualisieren" msgstr "Namen von existierenden Räumen aktualisieren"
#: aleksis/apps/untis/preferences.py:72 #: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas" msgid "Update existing supervision areas"
msgstr "Bereits existierende Aufsichtsgebiete aktualisieren" msgstr "Bereits existierende Aufsichtsgebiete aktualisieren"
#: aleksis/apps/untis/preferences.py:80 #: aleksis/apps/untis/preferences.py:96
msgid "Use course groups" msgid "Use course groups"
msgstr "Kursgruppen nutzen" msgstr "Kursgruppen nutzen"
#: aleksis/apps/untis/preferences.py:82 #: aleksis/apps/untis/preferences.py:97
msgid "Build or 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 "Baut oder findet Kursgruppen für jeden Kurs anstatt die Klassengruppen zu setzen." msgstr ""
"Sucht Kursgruppen für jeden Kurs, anstatt Klassen als Gruppen zu setzen."
#: aleksis/apps/untis/util/mysql/importers/lessons.py:43 #: 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 ""
"Ein Datenproblem registrieren, wenn eine Kursgruppe nicht gefunden wurde."
#: 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:131
msgid "Ignore incomplete substitutions"
msgstr "Unvollständige Vertretungen ignorieren"
#: 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 {}" msgid "Import lesson {}"
msgstr "Importiere Stunde {}" 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" msgid " Skip because missing times"
msgstr " Wird wegen fehlender Zeiten übersprungen" msgstr " Wird wegen fehlender Zeiten übersprungen"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:105 #: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject" msgid " Skip because missing subject"
msgstr " Wird wegen fehlendem Fach übersprungen" msgstr " Wird wegen fehlendem Fach übersprungen"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:266 #: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by UNTIS import" msgid "Deleted by Untis import"
msgstr "Gelöscht durch UNTIS-Import" msgstr "Gelöscht durch Untis-Import"
#~ msgid "Untis XML export" #~ msgid "Untis XML export"
#~ msgstr "Untis-XML-Export" #~ msgstr "Untis-XML-Export"
...@@ -131,7 +202,7 @@ msgstr "Gelöscht durch UNTIS-Import" ...@@ -131,7 +202,7 @@ msgstr "Gelöscht durch UNTIS-Import"
#~ msgstr "Pfad zur Untis-XML-Exportdatei" #~ msgstr "Pfad zur Untis-XML-Exportdatei"
#~ msgid "Untis XML import" #~ msgid "Untis XML import"
#~ msgstr "UNTIS-XML-Import" #~ msgstr "Untis-XML-Import"
#~ msgid "Can do XML import" #~ msgid "Can do XML import"
#~ msgstr "Kann XML-Import durchführen" #~ msgstr "Kann XML-Import durchführen"
...@@ -207,14 +278,14 @@ msgstr "Gelöscht durch UNTIS-Import" ...@@ -207,14 +278,14 @@ msgstr "Gelöscht durch UNTIS-Import"
#~ msgid "Failed to import lesson: Teacher %s does not exist." #~ msgid "Failed to import lesson: Teacher %s does not exist."
#~ msgstr "Fehler beim Importieren der Stunde: Lehrer %s existiert nicht." #~ msgstr "Fehler beim Importieren der Stunde: Lehrer %s existiert nicht."
#~ msgid "UNTIS subject" #~ msgid "Untis subject"
#~ msgstr "UNTIS-Fach" #~ msgstr "Untis-Fach"
#~ msgid "The UNTIS import will use this for matching course groups(along with parent groups)." #~ msgid "The Untis import will use this for matching course groups(along with parent groups)."
#~ msgstr "Der UNTIS-Importer nutzt diese Angaben (gemeinsam mit Elterngruppen), um Kursgruppen zuzuordnen." #~ msgstr "Der Untis-Importer nutzt diese Angaben (gemeinsam mit Elterngruppen), um Kursgruppen zuzuordnen."
#~ msgid "Term id in UNTIS" #~ msgid "Term id in Untis"
#~ msgstr "ID der Periode in UNTIS" #~ msgstr "ID der Periode in Untis"
#~ msgid "Assign subjects to groups" #~ msgid "Assign subjects to groups"
#~ msgstr "Fächer zu Gruppen zuordnen" #~ msgstr "Fächer zu Gruppen zuordnen"
...@@ -222,11 +293,11 @@ msgstr "Gelöscht durch UNTIS-Import" ...@@ -222,11 +293,11 @@ msgstr "Gelöscht durch UNTIS-Import"
#~ msgid "" #~ msgid ""
#~ "\n" #~ "\n"
#~ " You can use this form to assign subjects to groups. Please enter the exact names of the subjects as they are\n" #~ " You can use this form to assign subjects to groups. Please enter the exact names of the subjects as they are\n"
#~ " saved in UNTIS (case-insensitive). These values are only used to match course groups while importing from MySQL.\n" #~ " saved in Untis (case-insensitive). These values are only used to match course groups while importing from MySQL.\n"
#~ " " #~ " "
#~ msgstr "" #~ msgstr ""
#~ "\n" #~ "\n"
#~ " Sie können diese Seite nutzen, um Fächer zu Gruppen zuzuordnen. Bitte geben Sie die exakten Namen der Fächer ein, so, wie sie in UNTIS\n" #~ " Sie können diese Seite nutzen, um Fächer zu Gruppen zuzuordnen. Bitte geben Sie die exakten Namen der Fächer ein, so, wie sie in Untis\n"
#~ "gespeichert sind (Groß- und Kleinschreibung wird ignoriert). Diese Werte werden nur benutzt, um Kursgruppen im MySQL-Import zuzuordnen.\n" #~ "gespeichert sind (Groß- und Kleinschreibung wird ignoriert). Diese Werte werden nur benutzt, um Kursgruppen im MySQL-Import zuzuordnen.\n"
#~ " " #~ " "
......
...@@ -8,7 +8,7 @@ msgid "" ...@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-20 21:06+0200\n" "POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
...@@ -18,8 +18,24 @@ msgstr "" ...@@ -18,8 +18,24 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\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 #: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for UNTIS MySQL import)" msgid "Link subjects to groups (for Untis MySQL import)"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:9 #: aleksis/apps/untis/model_extensions.py:9
...@@ -30,96 +46,140 @@ msgstr "" ...@@ -30,96 +46,140 @@ msgstr ""
#: aleksis/apps/untis/model_extensions.py:35 #: aleksis/apps/untis/model_extensions.py:35
#: aleksis/apps/untis/model_extensions.py:38 #: aleksis/apps/untis/model_extensions.py:38
#: aleksis/apps/untis/model_extensions.py:54 #: 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:60
#: aleksis/apps/untis/model_extensions.py:63 #: aleksis/apps/untis/model_extensions.py:63
#: aleksis/apps/untis/model_extensions.py:66 #: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:69 msgid "Untis import reference"
#: aleksis/apps/untis/model_extensions.py:72
msgid "UNTIS import reference"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:23 #: aleksis/apps/untis/model_extensions.py:23
msgid "UNTIS school year ID" msgid "Untis school year ID"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:26 #: aleksis/apps/untis/model_extensions.py:26
msgid "UNTIS school id" msgid "Untis school id"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:29 #: aleksis/apps/untis/model_extensions.py:29
msgid "UNTIS version id" msgid "Untis version id"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:41 #: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in UNTIS" msgid "Lesson id in Untis"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:45 #: aleksis/apps/untis/model_extensions.py:45
#: aleksis/apps/untis/model_extensions.py:50 #: aleksis/apps/untis/model_extensions.py:50
msgid "Number of lesson element in UNTIS" msgid "Number of lesson element in Untis"
msgstr ""
#: 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 "" msgstr ""
#: aleksis/apps/untis/models.py:4221 #: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups" msgid "Can assign subjects to groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:8 #: aleksis/apps/untis/preferences.py:8
msgid "UNTIS: MySQL" msgid "Untis: MySQL"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:16 #: aleksis/apps/untis/preferences.py:16
msgid "Update values of existing subjects" msgid "School ID in Untis database"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:24 #: aleksis/apps/untis/preferences.py:24
msgid "Update short name of existing persons" msgid "Update values of existing subjects"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:32 #: aleksis/apps/untis/preferences.py:32
msgid "Update name of existing persons" msgid "Update short name of existing persons"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:40 #: aleksis/apps/untis/preferences.py:40
msgid "Update short name of existing groups" msgid "Update name of existing persons"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:48 #: aleksis/apps/untis/preferences.py:48
msgid "Update short name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups" msgid "Update name of existing groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:55 #: aleksis/apps/untis/preferences.py:64
msgid "Disambiguate name of new groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:71
msgid "Overwrite group owners" msgid "Overwrite group owners"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:64 #: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms" msgid "Update name of existing rooms"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:72 #: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas" msgid "Update existing supervision areas"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:80 #: aleksis/apps/untis/preferences.py:96
msgid "Use course groups" msgid "Use course groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:82 #: aleksis/apps/untis/preferences.py:97
msgid "Build or 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 "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:43 #: aleksis/apps/untis/preferences.py:105
msgid "Import lesson {}" 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:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46 #: 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" msgid " Skip because missing times"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:105 #: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject" msgid " Skip because missing subject"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:266 #: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by UNTIS import" msgid "Deleted by Untis import"
msgstr "" msgstr ""
...@@ -7,7 +7,7 @@ msgid "" ...@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-20 21:06+0200\n" "POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: 2020-08-25 17:42+0000\n" "PO-Revision-Date: 2020-08-25 17:42+0000\n"
"Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n" "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
"Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis-app-untis/la/>\n" "Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis-app-untis/la/>\n"
...@@ -18,8 +18,24 @@ msgstr "" ...@@ -18,8 +18,24 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.1.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 #: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for UNTIS MySQL import)" msgid "Link subjects to groups (for Untis MySQL import)"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:9 #: aleksis/apps/untis/model_extensions.py:9
...@@ -30,98 +46,142 @@ msgstr "" ...@@ -30,98 +46,142 @@ msgstr ""
#: aleksis/apps/untis/model_extensions.py:35 #: aleksis/apps/untis/model_extensions.py:35
#: aleksis/apps/untis/model_extensions.py:38 #: aleksis/apps/untis/model_extensions.py:38
#: aleksis/apps/untis/model_extensions.py:54 #: 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:60
#: aleksis/apps/untis/model_extensions.py:63 #: aleksis/apps/untis/model_extensions.py:63
#: aleksis/apps/untis/model_extensions.py:66 #: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:69 msgid "Untis import reference"
#: aleksis/apps/untis/model_extensions.py:72
msgid "UNTIS import reference"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:23 #: aleksis/apps/untis/model_extensions.py:23
msgid "UNTIS school year ID" msgid "Untis school year ID"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:26 #: aleksis/apps/untis/model_extensions.py:26
msgid "UNTIS school id" msgid "Untis school id"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:29 #: aleksis/apps/untis/model_extensions.py:29
msgid "UNTIS version id" msgid "Untis version id"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:41 #: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in UNTIS" msgid "Lesson id in Untis"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:45 #: aleksis/apps/untis/model_extensions.py:45
#: aleksis/apps/untis/model_extensions.py:50 #: aleksis/apps/untis/model_extensions.py:50
msgid "Number of lesson element in UNTIS" msgid "Number of lesson element in Untis"
msgstr ""
#: 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 "" msgstr ""
#: aleksis/apps/untis/models.py:4221 #: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups" msgid "Can assign subjects to groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:8 #: aleksis/apps/untis/preferences.py:8
msgid "UNTIS: MySQL" msgid "Untis: MySQL"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:16 #: aleksis/apps/untis/preferences.py:16
msgid "Update values of existing subjects" msgid "School ID in Untis database"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:24 #: aleksis/apps/untis/preferences.py:24
msgid "Update short name of existing persons" msgid "Update values of existing subjects"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:32 #: aleksis/apps/untis/preferences.py:32
msgid "Update name of existing persons" msgid "Update short name of existing persons"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:40 #: aleksis/apps/untis/preferences.py:40
msgid "Update short name of existing groups" msgid "Update name of existing persons"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:48 #: aleksis/apps/untis/preferences.py:48
msgid "Update short name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups" msgid "Update name of existing groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:55 #: aleksis/apps/untis/preferences.py:64
msgid "Disambiguate name of new groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:71
msgid "Overwrite group owners" msgid "Overwrite group owners"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:64 #: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms" msgid "Update name of existing rooms"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:72 #: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas" msgid "Update existing supervision areas"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:80 #: aleksis/apps/untis/preferences.py:96
msgid "Use course groups" msgid "Use course groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:82 #: aleksis/apps/untis/preferences.py:97
msgid "Build or 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 "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:43 #: aleksis/apps/untis/preferences.py:105
msgid "Import lesson {}" 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:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46 #: 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" msgid " Skip because missing times"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:105 #: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject" msgid " Skip because missing subject"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:266 #: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by UNTIS import" msgid "Deleted by Untis import"
msgstr "" msgstr ""
#~ msgid "Group" #~ msgid "Group"
......
...@@ -8,7 +8,7 @@ msgid "" ...@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-20 21:06+0200\n" "POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
...@@ -17,8 +17,24 @@ msgstr "" ...@@ -17,8 +17,24 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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 #: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for UNTIS MySQL import)" msgid "Link subjects to groups (for Untis MySQL import)"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:9 #: aleksis/apps/untis/model_extensions.py:9
...@@ -29,96 +45,140 @@ msgstr "" ...@@ -29,96 +45,140 @@ msgstr ""
#: aleksis/apps/untis/model_extensions.py:35 #: aleksis/apps/untis/model_extensions.py:35
#: aleksis/apps/untis/model_extensions.py:38 #: aleksis/apps/untis/model_extensions.py:38
#: aleksis/apps/untis/model_extensions.py:54 #: 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:60
#: aleksis/apps/untis/model_extensions.py:63 #: aleksis/apps/untis/model_extensions.py:63
#: aleksis/apps/untis/model_extensions.py:66 #: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:69 msgid "Untis import reference"
#: aleksis/apps/untis/model_extensions.py:72
msgid "UNTIS import reference"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:23 #: aleksis/apps/untis/model_extensions.py:23
msgid "UNTIS school year ID" msgid "Untis school year ID"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:26 #: aleksis/apps/untis/model_extensions.py:26
msgid "UNTIS school id" msgid "Untis school id"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:29 #: aleksis/apps/untis/model_extensions.py:29
msgid "UNTIS version id" msgid "Untis version id"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:41 #: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in UNTIS" msgid "Lesson id in Untis"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:45 #: aleksis/apps/untis/model_extensions.py:45
#: aleksis/apps/untis/model_extensions.py:50 #: aleksis/apps/untis/model_extensions.py:50
msgid "Number of lesson element in UNTIS" msgid "Number of lesson element in Untis"
msgstr ""
#: 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 "" msgstr ""
#: aleksis/apps/untis/models.py:4221 #: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups" msgid "Can assign subjects to groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:8 #: aleksis/apps/untis/preferences.py:8
msgid "UNTIS: MySQL" msgid "Untis: MySQL"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:16 #: aleksis/apps/untis/preferences.py:16
msgid "Update values of existing subjects" msgid "School ID in Untis database"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:24 #: aleksis/apps/untis/preferences.py:24
msgid "Update short name of existing persons" msgid "Update values of existing subjects"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:32 #: aleksis/apps/untis/preferences.py:32
msgid "Update name of existing persons" msgid "Update short name of existing persons"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:40 #: aleksis/apps/untis/preferences.py:40
msgid "Update short name of existing groups" msgid "Update name of existing persons"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:48 #: aleksis/apps/untis/preferences.py:48
msgid "Update short name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups" msgid "Update name of existing groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:55 #: aleksis/apps/untis/preferences.py:64
msgid "Disambiguate name of new groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:71
msgid "Overwrite group owners" msgid "Overwrite group owners"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:64 #: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms" msgid "Update name of existing rooms"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:72 #: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas" msgid "Update existing supervision areas"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:80 #: aleksis/apps/untis/preferences.py:96
msgid "Use course groups" msgid "Use course groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:82 #: aleksis/apps/untis/preferences.py:97
msgid "Build or 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 "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:43 #: aleksis/apps/untis/preferences.py:105
msgid "Import lesson {}" 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:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46 #: 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" msgid " Skip because missing times"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:105 #: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject" msgid " Skip because missing subject"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:266 #: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by UNTIS import" msgid "Deleted by Untis import"
msgstr "" msgstr ""
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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."
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."
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."
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."
msgstr ""
"Импорт Untis не установил группу курсов для урока, т.к. не найдена "
"соответствующая группа."
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr "Связать предметы с группами (для импорта Untis MySQL)"
#: aleksis/apps/untis/model_extensions.py:9
#: aleksis/apps/untis/model_extensions.py:12
#: aleksis/apps/untis/model_extensions.py:15
#: aleksis/apps/untis/model_extensions.py:20
#: aleksis/apps/untis/model_extensions.py:32
#: 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
msgid "Untis import reference"
msgstr "Ссылка на Untis-импорт"
#: aleksis/apps/untis/model_extensions.py:23
msgid "Untis school year ID"
msgstr "ID учебного года в Untis"
#: aleksis/apps/untis/model_extensions.py:26
msgid "Untis school id"
msgstr "ID школы в Untis"
#: aleksis/apps/untis/model_extensions.py:29
msgid "Untis version id"
msgstr "ID версии Untis"
#: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in Untis"
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 "Количество элементов уроков в 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 "Ссылка импорта Untis"
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr "Может назначать предметы группам"
#: aleksis/apps/untis/preferences.py:8
msgid "Untis: MySQL"
msgstr "Untis: MySQL"
#: aleksis/apps/untis/preferences.py:16
msgid "School ID in Untis database"
msgstr "ID школы в базе данных Untis"
#: aleksis/apps/untis/preferences.py:24
msgid "Update values of existing subjects"
msgstr "Обновить значения существующих предметов"
#: aleksis/apps/untis/preferences.py:32
msgid "Update short name of existing persons"
msgstr "Обновить короткие имена существущих лиц"
#: aleksis/apps/untis/preferences.py:40
msgid "Update name of existing persons"
msgstr "Обновить имена существующих лиц"
#: aleksis/apps/untis/preferences.py:48
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:71
msgid "Overwrite group owners"
msgstr "Переписать владельцев групп"
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr "Обновить названия существующих комнат"
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr "Обновить существующие зоны контроля"
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr "Использовать группы курса"
#: 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: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 "Если нет 100% совпадения подставлять группы курсов из родительских"
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr "Работает только при активном \"Использовании группы курса\"."
#: aleksis/apps/untis/preferences.py:131
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:44
msgid "Import lesson {}"
msgstr "Импортировать урок {}"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:47
msgid " Skip because missing times"
msgstr " Пропустить т.к. мало времени"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:112
msgid " Skip because missing subject"
msgstr " Пропустить т.к. отсутствует предмет"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:333
msgid "Deleted by Untis import"
msgstr "Удалено импортом Untis"
...@@ -8,7 +8,7 @@ msgid "" ...@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-20 21:06+0200\n" "POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
...@@ -17,8 +17,24 @@ msgstr "" ...@@ -17,8 +17,24 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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 #: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for UNTIS MySQL import)" msgid "Link subjects to groups (for Untis MySQL import)"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:9 #: aleksis/apps/untis/model_extensions.py:9
...@@ -29,96 +45,140 @@ msgstr "" ...@@ -29,96 +45,140 @@ msgstr ""
#: aleksis/apps/untis/model_extensions.py:35 #: aleksis/apps/untis/model_extensions.py:35
#: aleksis/apps/untis/model_extensions.py:38 #: aleksis/apps/untis/model_extensions.py:38
#: aleksis/apps/untis/model_extensions.py:54 #: 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:60
#: aleksis/apps/untis/model_extensions.py:63 #: aleksis/apps/untis/model_extensions.py:63
#: aleksis/apps/untis/model_extensions.py:66 #: aleksis/apps/untis/model_extensions.py:66
#: aleksis/apps/untis/model_extensions.py:69 msgid "Untis import reference"
#: aleksis/apps/untis/model_extensions.py:72
msgid "UNTIS import reference"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:23 #: aleksis/apps/untis/model_extensions.py:23
msgid "UNTIS school year ID" msgid "Untis school year ID"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:26 #: aleksis/apps/untis/model_extensions.py:26
msgid "UNTIS school id" msgid "Untis school id"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:29 #: aleksis/apps/untis/model_extensions.py:29
msgid "UNTIS version id" msgid "Untis version id"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:41 #: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in UNTIS" msgid "Lesson id in Untis"
msgstr "" msgstr ""
#: aleksis/apps/untis/model_extensions.py:45 #: aleksis/apps/untis/model_extensions.py:45
#: aleksis/apps/untis/model_extensions.py:50 #: aleksis/apps/untis/model_extensions.py:50
msgid "Number of lesson element in UNTIS" msgid "Number of lesson element in Untis"
msgstr ""
#: 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 "" msgstr ""
#: aleksis/apps/untis/models.py:4221 #: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups" msgid "Can assign subjects to groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:8 #: aleksis/apps/untis/preferences.py:8
msgid "UNTIS: MySQL" msgid "Untis: MySQL"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:16 #: aleksis/apps/untis/preferences.py:16
msgid "Update values of existing subjects" msgid "School ID in Untis database"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:24 #: aleksis/apps/untis/preferences.py:24
msgid "Update short name of existing persons" msgid "Update values of existing subjects"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:32 #: aleksis/apps/untis/preferences.py:32
msgid "Update name of existing persons" msgid "Update short name of existing persons"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:40 #: aleksis/apps/untis/preferences.py:40
msgid "Update short name of existing groups" msgid "Update name of existing persons"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:48 #: aleksis/apps/untis/preferences.py:48
msgid "Update short name of existing groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups" msgid "Update name of existing groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:55 #: aleksis/apps/untis/preferences.py:64
msgid "Disambiguate name of new groups"
msgstr ""
#: aleksis/apps/untis/preferences.py:71
msgid "Overwrite group owners" msgid "Overwrite group owners"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:64 #: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms" msgid "Update name of existing rooms"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:72 #: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas" msgid "Update existing supervision areas"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:80 #: aleksis/apps/untis/preferences.py:96
msgid "Use course groups" msgid "Use course groups"
msgstr "" msgstr ""
#: aleksis/apps/untis/preferences.py:82 #: aleksis/apps/untis/preferences.py:97
msgid "Build or 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 "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:43 #: aleksis/apps/untis/preferences.py:105
msgid "Import lesson {}" 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:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46 #: 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" msgid " Skip because missing times"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:105 #: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject" msgid " Skip because missing subject"
msgstr "" msgstr ""
#: aleksis/apps/untis/util/mysql/importers/lessons.py:266 #: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by UNTIS import" msgid "Deleted by Untis import"
msgstr "" msgstr ""
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \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"
"Language: uk\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 % 1 == 0 && n % 10 == 1 && n % 100 != 11 "
"? 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.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 ""
"Групи курсів створені імпортом Untis, оскільки не знайдено відповідної групи."
#: aleksis/apps/untis/data_checks.py:12
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."
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."
msgstr ""
"Імпорт Untis не встановив групу курсів для уроку, оскільки не було знайдено "
"відповідної групи."
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr "Зв'язати предмети з групами (для імпорту Untis MySQL)"
#: aleksis/apps/untis/model_extensions.py:9
#: aleksis/apps/untis/model_extensions.py:12
#: aleksis/apps/untis/model_extensions.py:15
#: aleksis/apps/untis/model_extensions.py:20
#: aleksis/apps/untis/model_extensions.py:32
#: 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: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"
#: aleksis/apps/untis/model_extensions.py:26
msgid "Untis school id"
msgstr "ID школи в Untis"
#: aleksis/apps/untis/model_extensions.py:29
msgid "Untis version id"
msgstr "ID версії Untis"
#: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in Untis"
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 "Кількість елементів уроків в Untis"
#: 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"
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr "Може призначати предмети групам"
#: aleksis/apps/untis/preferences.py:8
msgid "Untis: MySQL"
msgstr "Untis: MySQL"
#: aleksis/apps/untis/preferences.py:16
msgid "School ID in Untis database"
msgstr "ID школи у базі даних Untis"
#: aleksis/apps/untis/preferences.py:24
msgid "Update values of existing subjects"
msgstr "Оновити значення наявних предметів"
#: aleksis/apps/untis/preferences.py:32
msgid "Update short name of existing persons"
msgstr "Оновити короткі імена наявних осіб"
#: aleksis/apps/untis/preferences.py:40
msgid "Update name of existing persons"
msgstr "Оновити імена наявних осіб"
#: aleksis/apps/untis/preferences.py:48
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:71
msgid "Overwrite group owners"
msgstr "Переписати власників груп"
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr "Оновити назви наявних кімнат"
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr "Оновити наявні зони контролю"
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr "Використовувати групи курсу"
#: 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: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 ""
"Співставляти групи курсів за батьківськими групами якщо не знайдена 100% "
"відповідність"
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr "Працює лише якщо активне \"Використовувати групи курсу\"."
#: aleksis/apps/untis/preferences.py:131
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 django.core.management.base import BaseCommand from django.core.management.base import BaseCommand
from ...tasks import untis_import_mysql_current_term from ...commands import COMMANDS_BY_NAME
class Command(BaseCommand): class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument(
"command", nargs="?", default="current", type=str, choices=list(COMMANDS_BY_NAME.keys())
)
parser.add_argument(
"--background",
action="store_true",
help="Run import job in background using Celery",
)
parser.add_argument(
"--plan-version",
help="Select explicit Untis plan version",
)
parser.add_argument(
"--school-id",
help="Select explicit Untis school ID",
)
def handle(self, *args, **options): def handle(self, *args, **options):
untis_import_mysql_current_term.delay() command = COMMANDS_BY_NAME[options["command"]]
background = options["background"]
school_id = options.get("school_id")
version = options.get("plan_version")
command.run(background=background, school_id=school_id, version=version)