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 (375)
Showing
with 1934 additions and 702 deletions
module.exports = {
root: true,
overrides: [
{
files: ["*.js", "*.vue"],
// parser: "vue-eslint-parser",
//processor: "@graphql-eslint/graphql",
extends: [
"eslint:recommended",
"plugin:vue/strongly-recommended",
"plugin:@intlify/vue-i18n/recommended",
],
rules: {
"no-unused-vars": "warn",
"vue/no-unused-vars": "off",
"vue/multi-word-component-names": "off",
"vue/attribute-hyphenation": "error",
"vue/v-slot-style": "error",
"@intlify/vue-i18n/key-format-style": [
"error",
"snake_case",
{
splitByDots: false,
},
],
// "@intlify/vue-i18n/no-unused-keys": ["warn", {}],
"@intlify/vue-i18n/no-raw-text": [
"error",
{
ignoreNodes: ["v-icon"],
ignorePattern: "^[-–—·#:()\\[\\]&\\.\\s]+$",
},
],
"@intlify/vue-i18n/no-deprecated-tc": "off",
// Fixes for prettier (avoid eslint-config-prettier)
// The following rules can be used in some cases. See the README for more
// information. (These are marked with `0` instead of `"off"` so that a
// script can distinguish them.)
curly: 0,
"lines-around-comment": 0,
"max-len": 0,
"no-confusing-arrow": 0,
"no-mixed-operators": 0,
"no-tabs": 0,
"no-unexpected-multiline": 0,
quotes: 0,
"@typescript-eslint/quotes": 0,
"babel/quotes": 0,
"vue/html-self-closing": 0,
"vue/max-len": 0,
// The rest are rules that you never need to enable when using Prettier.
"array-bracket-newline": "off",
"array-bracket-spacing": "off",
"array-element-newline": "off",
"arrow-parens": "off",
"arrow-spacing": "off",
"block-spacing": "off",
"brace-style": "off",
"comma-dangle": "off",
"comma-spacing": "off",
"comma-style": "off",
"computed-property-spacing": "off",
"dot-location": "off",
"eol-last": "off",
"func-call-spacing": "off",
"function-call-argument-newline": "off",
"function-paren-newline": "off",
"generator-star": "off",
"generator-star-spacing": "off",
"implicit-arrow-linebreak": "off",
indent: "off",
"jsx-quotes": "off",
"key-spacing": "off",
"keyword-spacing": "off",
"linebreak-style": "off",
"multiline-ternary": "off",
"newline-per-chained-call": "off",
"new-parens": "off",
"no-arrow-condition": "off",
"no-comma-dangle": "off",
"no-extra-parens": "off",
"no-extra-semi": "off",
"no-floating-decimal": "off",
"no-mixed-spaces-and-tabs": "off",
"no-multi-spaces": "off",
"no-multiple-empty-lines": "off",
"no-reserved-keys": "off",
"no-space-before-semi": "off",
"no-trailing-spaces": "off",
"no-whitespace-before-property": "off",
"no-wrap-func": "off",
"nonblock-statement-body-position": "off",
"object-curly-newline": "off",
"object-curly-spacing": "off",
"object-property-newline": "off",
"one-var-declaration-per-line": "off",
"operator-linebreak": "off",
"padded-blocks": "off",
"quote-props": "off",
"rest-spread-spacing": "off",
semi: "off",
"semi-spacing": "off",
"semi-style": "off",
"space-after-function-name": "off",
"space-after-keywords": "off",
"space-before-blocks": "off",
"space-before-function-paren": "off",
"space-before-function-parentheses": "off",
"space-before-keywords": "off",
"space-in-brackets": "off",
"space-in-parens": "off",
"space-infix-ops": "off",
"space-return-throw-case": "off",
"space-unary-ops": "off",
"space-unary-word-ops": "off",
"switch-colon-spacing": "off",
"template-curly-spacing": "off",
"template-tag-spacing": "off",
"unicode-bom": "off",
"wrap-iife": "off",
"wrap-regex": "off",
"yield-star-spacing": "off",
"@babel/object-curly-spacing": "off",
"@babel/semi": "off",
"@typescript-eslint/brace-style": "off",
"@typescript-eslint/comma-dangle": "off",
"@typescript-eslint/comma-spacing": "off",
"@typescript-eslint/func-call-spacing": "off",
"@typescript-eslint/indent": "off",
"@typescript-eslint/keyword-spacing": "off",
"@typescript-eslint/member-delimiter-style": "off",
"@typescript-eslint/no-extra-parens": "off",
"@typescript-eslint/no-extra-semi": "off",
"@typescript-eslint/object-curly-spacing": "off",
"@typescript-eslint/semi": "off",
"@typescript-eslint/space-before-blocks": "off",
"@typescript-eslint/space-before-function-paren": "off",
"@typescript-eslint/space-infix-ops": "off",
"@typescript-eslint/type-annotation-spacing": "off",
"babel/object-curly-spacing": "off",
"babel/semi": "off",
"flowtype/boolean-style": "off",
"flowtype/delimiter-dangle": "off",
"flowtype/generic-spacing": "off",
"flowtype/object-type-curly-spacing": "off",
"flowtype/object-type-delimiter": "off",
"flowtype/quotes": "off",
"flowtype/semi": "off",
"flowtype/space-after-type-colon": "off",
"flowtype/space-before-generic-bracket": "off",
"flowtype/space-before-type-colon": "off",
"flowtype/union-intersection-spacing": "off",
"react/jsx-child-element-spacing": "off",
"react/jsx-closing-bracket-location": "off",
"react/jsx-closing-tag-location": "off",
"react/jsx-curly-newline": "off",
"react/jsx-curly-spacing": "off",
"react/jsx-equals-spacing": "off",
"react/jsx-first-prop-new-line": "off",
"react/jsx-indent": "off",
"react/jsx-indent-props": "off",
"react/jsx-max-props-per-line": "off",
"react/jsx-newline": "off",
"react/jsx-one-expression-per-line": "off",
"react/jsx-props-no-multi-spaces": "off",
"react/jsx-tag-spacing": "off",
"react/jsx-wrap-multilines": "off",
"standard/array-bracket-even-spacing": "off",
"standard/computed-property-even-spacing": "off",
"standard/object-curly-even-spacing": "off",
"unicorn/empty-brace-spaces": "off",
"unicorn/no-nested-ternary": "off",
"unicorn/number-literal-case": "off",
"vue/array-bracket-newline": "off",
"vue/array-bracket-spacing": "off",
"vue/arrow-spacing": "off",
"vue/block-spacing": "off",
"vue/block-tag-newline": "off",
"vue/brace-style": "off",
"vue/comma-dangle": "off",
"vue/comma-spacing": "off",
"vue/comma-style": "off",
"vue/dot-location": "off",
"vue/func-call-spacing": "off",
"vue/html-closing-bracket-newline": "off",
"vue/html-closing-bracket-spacing": "off",
"vue/html-end-tags": "off",
"vue/html-indent": "off",
"vue/html-quotes": "off",
"vue/key-spacing": "off",
"vue/keyword-spacing": "off",
"vue/max-attributes-per-line": "off",
"vue/multiline-html-element-content-newline": "off",
"vue/multiline-ternary": "off",
"vue/mustache-interpolation-spacing": "off",
"vue/no-extra-parens": "off",
"vue/no-multi-spaces": "off",
"vue/no-spaces-around-equal-signs-in-attribute": "off",
"vue/object-curly-newline": "off",
"vue/object-curly-spacing": "off",
"vue/object-property-newline": "off",
"vue/operator-linebreak": "off",
"vue/quote-props": "off",
"vue/script-indent": "off",
"vue/singleline-html-element-content-newline": "off",
"vue/space-in-parens": "off",
"vue/space-infix-ops": "off",
"vue/space-unary-ops": "off",
"vue/template-curly-spacing": "off",
},
settings: {
"vue-i18n": {
localeDir: "./aleksis/core/frontend/messages/*.{json}",
messageSyntaxVersion: "^8.0.0",
},
},
env: {
es2021: true,
},
parserOptions: {
ecmaVersion: "latest",
},
},
{
files: ["*.graphql"],
parser: "@graphql-eslint/eslint-plugin",
plugins: ["@graphql-eslint"],
extends: "plugin:@graphql-eslint/operations-recommended",
parserOptions: {
graphQLConfig: {
schema: "./schema.json",
documents: "../aleksis/**/*/frontend/**/*.graphql",
},
},
rules: {
"@graphql-eslint/no-anonymous-operations": "error",
"@graphql-eslint/no-duplicate-fields": "error",
"@graphql-eslint/naming-convention": [
"error",
{
OperationDefinition: {
style: "camelCase",
forbiddenPrefixes: ["Query", "Mutation", "Subscription", "Get"],
forbiddenSuffixes: ["Query", "Mutation", "Subscription"],
},
},
],
},
},
],
};
{
"name": "aleksis-builddeps",
"version": "1.0.0",
"dependencies": {
"@graphql-eslint/eslint-plugin": "^4.3.0",
"@intlify/eslint-plugin-vue-i18n": "^3.0.0",
"eslint": "^8.26.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-vue": "^9.7.0",
"graphql": "^16.10.0",
"prettier": "^3.4.0",
"stylelint": "^15.0.0",
"stylelint-config-prettier": "^9.0.3",
"stylelint-config-standard": "^34.0.0"
}
}
<!-- AlekSIS is developed on EduGit. GitHub only serves as
backup mirror and to help people find the project. If
possible, please submit your merge request on EduGit!
EduGit accepts logins with GitHub accounts.
-->
[ ] I have read the above and have no way to contribute on EduGit
[ ] I understand that GitHub's terms of service exclude young and
learning contributors, but still cannot contribute on EduGit
instead.
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
*.py[cod]
__pycache__/
# Distribution / packaging
*.egg
*.egg-info/
.Python
.eggs/
.installed.cfg
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
pip-log.txt
# Translations
*.mo
......@@ -39,20 +39,60 @@ local_settings.py
# Environments
.env
.venv
ENV/
env/
venv/
ENV/
# Editors
*~
DEADJOE
\#*#
# IntelliJ
.idea
.idea/
# VSCode
.vscode/
.history/
*.code-workspace
# Database
db.sqlite3
# Sphinx
docs/_build/
# Test
# TeX
*.aux
# Generated files
/cache
/node_modules
.dev-js/node_modules
/static/
/whoosh_index/
.vite
.dev-js/.yarn
.dev-js/.pnp.cjs
.dev-js/.pnp.loader.mjs
.dev-js/.yarnrc.yml
.dev-js/schema.json
# Lock files
poetry.lock
package-lock.json
yarn.lock
.dev-js/yarn.lock
# Tests
.coverage
.mypy_cache/
.tox/
htmlcov/
# Data
maintenance_mode_state.txt
media/
aleksis/core/static/style.css
include:
- project: "AlekSIS/official/AlekSIS"
file: /ci/general.yml
# - project: "AlekSIS/official/AlekSIS"
# file: /ci/test/test.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/test/lint.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/test/security.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/build/dist.yml
- project: "AlekSIS/official/AlekSIS"
file: "/ci/deploy/trigger_dist.yml"
- project: "AlekSIS/official/AlekSIS"
file: /ci/publish/pypi.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/general.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/prepare/lock.yml
# - project: "AlekSIS/official/AlekSIS"
# file: /ci/test/test.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/test/lint.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/test/security.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/build/dist.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/build/docs.yml
- project: "AlekSIS/official/AlekSIS"
file: "/ci/deploy/trigger_dist.yml"
- project: "AlekSIS/official/AlekSIS"
file: /ci/publish/pypi.yml
- project: "AlekSIS/official/AlekSIS"
file: /ci/deploy/pages.yml
# Byte-compiled / optimized / DLL files
*$py.class
*.py[cod]
__pycache__/
# Distribution / packaging
*.egg
*.egg-info/
.Python
.eggs/
.installed.cfg
build/
develop-eggs/
dist/
downloads/
eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
# Installer logs
pip-delete-this-directory.txt
pip-log.txt
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
# pyenv
.python-version
# Environments
.env
.venv
ENV/
env/
venv/
# Editors
*~
DEADJOE
\#*#
# IntelliJ
.idea
.idea/
# Database
db.sqlite3
# Sphinx
docs/_build/
# TeX
*.aux
# Generated files
/node_modules/
/static/
/whoosh_index/
poetry.lock
.coverage
.mypy_cache/
.tox/
htmlcov/
maintenance_mode_state.txt
media/
package-lock.json
yarn.lock
# VSCode
.vscode/
.history/
*.code-workspace
/cache
# Add HTML files to avoid problems with unsupported Django templates
*.html
# Do not check/reformat generated files
aleksis/core/util/licenses.json
.vite/
.pnp.cjs
.pnp.loader.mjs
.git/
Changelog
=========
`2.0a2`_
--------
All notable changes to this project will be documented in this file.
New features
~~~~~~~~~~~~
The format is based on `Keep a Changelog`_,
and this project adheres to `Semantic Versioning`_.
* Import Untis data from MySQL
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
---------------------
Added
~~~~~
* Import data related to school terms and validity ranges.
* Provide different Celery tasks for multiple import scenarios.
Changed
~~~~~~~
* Rename permission rules to differentiate from internal permissions.
Fixed
~~~~~
* Cleanly delete old break supervisions instead of just replacing them.
* Do not import lessons without lesson periods.
* Delete (supervision) substitutions which are out of their validity range.
* Only import supervisions for the linked UNTIS term and not for all terms.
* Import supervisions linked to a validity range.
* Import absences with correct absence types and not None values.
* Set teachers to an empty list if there are no original and no substitution teachers.
* Call update_or_create without prefetched or joined data.
Removed
~~~~~~~
* Remove support for XML import due to a lack of maintenance.
`2.0a2`_ - 2020-05-04
---------------------
Added
~~~~~
* Import UNTIS data from MySQL
* Import absence reasons
* Import absences
* Import breaks
......@@ -22,35 +267,45 @@ New features
* Import teachers
* Import time periods
Bugfixes
~~~~~~~~
* None
Minor changes
~~~~~~~~~~~~~
* None
`1.0a1`_
--------
`1.0a1`_ - 2019-09-17
---------------------
New features
~~~~~~~~~~~~
Added
~~~~~
* Allow updating subjects, rooms and time periods from new import
* Allow importing a new version of a timetable
Bugfixes
~~~~~~~~
Changed
~~~~~~~
* Use bootstrap buttons everywhere
Fixed
~~~~~
* Work around bug in Untis that wrongly splits classes if they contain
spaces
Minor changes
~~~~~~~~~~~~~
* Use bootstrap buttons everywhere
.. _Keep a Changelog: https://keepachangelog.com/en/1.0.0/
.. _Semantic Versioning: https://semver.org/spec/v2.0.0.html
_`1.0a1`: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/1.0a1
_`2.0a2`: https://edugit.org/Teckids/AlekSIS/AlekSIS-App-Untis/-/tags/2.0a2
\ No newline at end of file
.. _1.0a1: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/1.0a1
.. _2.0a2: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.0a2
.. _2.0b0: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.0b0
.. _2.0rc1: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.0rc1
.. _2.0rc2: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.0rc2
.. _2.0rc3: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.0rc3
.. _2.0: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.0
.. _2.1: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.1
.. _2.1.1: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.1.1
.. _2.1.2: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.1.2
.. _2.1.3: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.1.3
.. _2.2: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.2
.. _2.3: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.3
.. _2.3.1: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.3.1
.. _2.3.2: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/2.3.2
.. _3.0b0: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/3.0b0
.. _3.0: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/3.0
.. _3.0.1: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/-/tags/3.0.1
......@@ -4,7 +4,7 @@ AlekSIS (School Information System) — App for Untis import
AlekSIS
-------
This is an application for use with the `AlekSIS`_ platform.
This is an application for use with the `AlekSIS®`_ platform.
Features
--------
......@@ -14,6 +14,7 @@ Features
* Import breaks
* Import classes
* Import events
* Import exams
* Import exported Untis database via MySQL import
* Import exported Untis XML files
* Import holidays
......@@ -30,19 +31,27 @@ Licence
::
Copyright © 2018, 2019, 2020, 2021 Jonathan Weth <dev@jonathanweth.de>
Copyright © 2018, 2019, 2020, 2021, 2022 Jonathan Weth <dev@jonathanweth.de>
Copyright © 2018, 2019 Frank Poetzsch-Heffter <p-h@katharineum.de>
Copyright © 2019, 2020 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 Julian Leucker <leuckeju@katharineum.de>
Copyright © 2019 mirabilos <thorsten.glaser@teckids.org>
Licenced under the EUPL, version 1.2 or later
Licenced under the EUPL, version 1.2 or later, by Teckids e.V. (Bonn, Germany).
Please see the LICENCE.rst file accompanying this distribution for the
full licence text or on the `European Union Public Licence`_ website
https://joinup.ec.europa.eu/collection/eupl/guidelines-users-and-developers
(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/
.. _trademark policy: https://aleksis.org/pages/about
......@@ -3,16 +3,16 @@ from aleksis.core.util.apps import AppConfig
class UntisConfig(AppConfig):
name = "aleksis.apps.untis"
verbose_name = "AlekSIS — UNTIS interface"
verbose_name = "AlekSIS — Untis interface"
urls = {
"Repository": "https://edugit.org/AlekSIS/official/AlekSIS-App-Untis/",
}
licence = "EUPL-1.2+"
copyright_info = (
([2018, 2019, 2020, 2021], "Jonathan Weth", "dev@jonathanweth.de"),
([2018, 2019, 2020, 2021, 2022], "Jonathan Weth", "dev@jonathanweth.de"),
([2018, 2019], "Frank Poetzsch-Heffter", "p-h@katharineum.de"),
([2019, 2020], "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], "Julian Leucker", "leuckeju@katharineum.de"),
([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
from django import forms
from django.utils.translation import gettext_lazy as _
class UntisUploadForm(forms.Form):
untis_xml = forms.FileField(label=_("Untis XML export"))
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-05 21:26+0100\n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -18,179 +18,168 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: forms.py:6
msgid "Untis XML export"
#: aleksis/apps/untis/data_checks.py:9
msgid "Course groups created by the Untis import because no matching group has been found."
msgstr ""
#: management/commands/untis_import_xml.py:9
msgid "Path to Untis XML export file"
#: aleksis/apps/untis/data_checks.py:12
msgid "The Untis import created a new course group because no matching group has been found."
msgstr ""
#: menus.py:6
msgid "Untis XML import"
#: aleksis/apps/untis/data_checks.py:25
msgid "Course group not set by the Untis import because no matching group has been found."
msgstr ""
#: menus.py:13
msgid "Link subjects to groups (for UNTIS MySQL import)"
#: 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 ""
#: model_extensions.py:9 model_extensions.py:12 model_extensions.py:15
#: model_extensions.py:20 model_extensions.py:32 model_extensions.py:35
#: model_extensions.py:38 model_extensions.py:54 model_extensions.py:57
#: model_extensions.py:60 model_extensions.py:63 model_extensions.py:66
#: model_extensions.py:69 model_extensions.py:72
msgid "UNTIS import reference"
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr ""
#: 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
msgid "Untis import reference"
msgstr ""
#: model_extensions.py:23
msgid "UNTIS school year ID"
#: aleksis/apps/untis/model_extensions.py:23
msgid "Untis school year ID"
msgstr ""
#: model_extensions.py:26
msgid "UNTIS school id"
#: aleksis/apps/untis/model_extensions.py:26
msgid "Untis school id"
msgstr ""
#: model_extensions.py:29
msgid "UNTIS version id"
#: aleksis/apps/untis/model_extensions.py:29
msgid "Untis version id"
msgstr ""
#: model_extensions.py:41
msgid "Lesson id in UNTIS"
#: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in Untis"
msgstr ""
#: model_extensions.py:45 model_extensions.py:50
msgid "Number of lesson element in UNTIS"
#: aleksis/apps/untis/model_extensions.py:45
#: aleksis/apps/untis/model_extensions.py:50
msgid "Number of lesson element in Untis"
msgstr ""
#: models.py:4222
msgid "Can do XML import"
#: 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 ""
#: models.py:4223
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr ""
#: preferences.py:8
msgid "UNTIS: MySQL"
#: aleksis/apps/untis/preferences.py:8
msgid "Untis: MySQL"
msgstr ""
#: preferences.py:16
#: aleksis/apps/untis/preferences.py:16
msgid "School ID in Untis database"
msgstr ""
#: aleksis/apps/untis/preferences.py:24
msgid "Update values of existing subjects"
msgstr ""
#: preferences.py:24
#: aleksis/apps/untis/preferences.py:32
msgid "Update short name of existing persons"
msgstr ""
#: preferences.py:32
#: aleksis/apps/untis/preferences.py:40
msgid "Update name of existing persons"
msgstr ""
#: preferences.py:40
#: aleksis/apps/untis/preferences.py:48
msgid "Update short name of existing groups"
msgstr ""
#: preferences.py:48
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups"
msgstr ""
#: 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"
msgstr ""
#: preferences.py:64
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr ""
#: preferences.py:72
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr ""
#: preferences.py:80
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr ""
#: preferences.py:82
msgid "Build or search course groups for every course instead of setting classes as groups."
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgstr ""
#: templates/untis/xml_import.html:7 templates/untis/xml_import.html:8
msgid "Import Untis data via XML"
#: aleksis/apps/untis/preferences.py:105
msgid "Create non-existing course groups"
msgstr ""
#: templates/untis/xml_import.html:13
msgid ""
"\n"
" Untis provides a function for exporting all data as an XML file.\n"
" "
#: aleksis/apps/untis/preferences.py:106
msgid "Only used if 'Use course groups' is enabled."
msgstr ""
#: templates/untis/xml_import.html:20
msgid ""
"\n"
" Newly imported data will be valid as of tomorrow.\n"
" "
#: aleksis/apps/untis/preferences.py:114
msgid "Register a data problem if a course group has been not found."
msgstr ""
#: templates/untis/xml_import.html:23
msgid ""
"\n"
" The effective dates of all existing lessons will be set to end\n"
" today.\n"
" "
#: aleksis/apps/untis/preferences.py:122
msgid "Match course groups by a subset of parent groups if no 100% match is found"
msgstr ""
#: templates/untis/xml_import.html:27
msgid ""
"\n"
" The effective dates of all newly imported lessons will be set to\n"
" start tomorrow.\n"
" "
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: templates/untis/xml_import.html:31
msgid ""
"\n"
" Teachers, rooms, subjects and classes and periods will be updated in place.\n"
" "
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: templates/untis/xml_import.html:40
msgid "Import data"
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr ""
#: util/mysql/importers/lessons.py:45
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
msgid "Import lesson {}"
msgstr ""
#: util/mysql/importers/lessons.py:48
#: aleksis/apps/untis/util/mysql/importers/lessons.py:49
msgid " Skip because missing times"
msgstr ""
#: util/mysql/importers/lessons.py:105
#: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject"
msgstr ""
#: util/mysql/importers/lessons.py:266
msgid "Deleted by UNTIS import"
msgstr ""
#: util/xml/xml.py:76
#, python-format
msgid "Class %s"
msgstr ""
#: util/xml/xml.py:92
#, python-format
msgid "Could not set class teacher of %(class)s to %(teacher)s."
msgstr ""
#: util/xml/xml.py:153
#, python-format
msgid "Invalid list of classes: %s"
msgstr ""
#: util/xml/xml.py:161
#, python-format
msgid "Failed to import lesson: Teacher %s does not exist."
#: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by Untis import"
msgstr ""
......@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-05 21:26+0100\n"
"PO-Revision-Date: 2020-12-05 20:52+0000\n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: 2022-08-03 16:40+0000\n"
"Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
"Language-Team: German <https://translate.edugit.org/projects/aleksis/"
"aleksis-app-untis/de/>\n"
......@@ -17,210 +17,275 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.3.2\n"
"X-Generator: Weblate 4.12.1\n"
#: forms.py:6
msgid "Untis XML export"
msgstr "Untis-XML-Export"
#: management/commands/untis_import_xml.py:9
msgid "Path to Untis XML export file"
msgstr "Pfad zur Untis-XML-Exportdatei"
#: 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."
#: menus.py:6
msgid "Untis XML import"
msgstr "UNTIS-XML-Import"
#: 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."
#: menus.py:13
msgid "Link subjects to groups (for UNTIS MySQL import)"
msgstr "Fächer mit Gruppen verknüpfen (für UNTIS-MySQL-Import)"
#: 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."
#: model_extensions.py:9 model_extensions.py:12 model_extensions.py:15
#: model_extensions.py:20 model_extensions.py:32 model_extensions.py:35
#: model_extensions.py:38 model_extensions.py:54 model_extensions.py:57
#: model_extensions.py:60 model_extensions.py:63 model_extensions.py:66
#: model_extensions.py:69 model_extensions.py:72
#: aleksis/apps/untis/data_checks.py:28
msgid "The Untis import didn't set a course group for a lesson because no matching group has been found."
msgstr ""
"Der Untis-Import hat keine Kursgruppe für eine Stunde festgelegt, weil keine "
"passende Gruppe gefunden wurde."
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
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: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
msgid "Untis import reference"
msgstr "Untis-Importreferenz"
#: aleksis/apps/untis/model_extensions.py:23
msgid "Untis school year ID"
msgstr "Untis-Schuljahr-ID"
#: aleksis/apps/untis/model_extensions.py:26
msgid "Untis school id"
msgstr "Untis-Schul-ID"
#: aleksis/apps/untis/model_extensions.py:29
msgid "Untis version id"
msgstr "Untis-Versions-ID"
#: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in Untis"
msgstr "Unterrichtsnummer in Untis"
#: aleksis/apps/untis/model_extensions.py:45
#: aleksis/apps/untis/model_extensions.py:50
msgid "Number of lesson element 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/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"
#: model_extensions.py:23
msgid "UNTIS school year ID"
msgstr "UNTIS-Schuljahr-ID"
#: model_extensions.py:26
msgid "UNTIS school id"
msgstr "UNTIS-Schul-ID"
#: model_extensions.py:29
msgid "UNTIS version id"
msgstr "UNTIS-Versions-ID"
msgstr "Untis-Importreferenz"
#: model_extensions.py:41
msgid "Lesson id in UNTIS"
msgstr "Unterrichtsnummer in UNTIS"
#: model_extensions.py:45 model_extensions.py:50
msgid "Number of lesson element in UNTIS"
msgstr "Nummer des Unterrichtselement in UNTIS"
#: models.py:4222
msgid "Can do XML import"
msgstr "Kann XML-Import durchführen"
#: models.py:4223
#: aleksis/apps/untis/models.py:4253
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
msgid "Untis: MySQL"
msgstr "Untis: MySQL"
#: preferences.py:8
msgid "UNTIS: MySQL"
msgstr "UNTIS: MySQL"
#: aleksis/apps/untis/preferences.py:16
msgid "School ID in Untis database"
msgstr "Schul-ID in der Untis-Datenbank"
#: preferences.py:16
#: aleksis/apps/untis/preferences.py:24
msgid "Update values of existing subjects"
msgstr "Werte von bereits vorhanden Fächer aktualisieren"
#: preferences.py:24
#: aleksis/apps/untis/preferences.py:32
msgid "Update short name of existing persons"
msgstr "Werte von bereits existierenden Person aktualisieren"
#: preferences.py:32
#: aleksis/apps/untis/preferences.py:40
msgid "Update name of existing persons"
msgstr "Namen von bereits existierenden Person aktualisieren"
#: preferences.py:40
#: aleksis/apps/untis/preferences.py:48
msgid "Update short name of existing groups"
msgstr "Kurznamen von existierenden Gruppen aktualisieren"
#: preferences.py:48
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups"
msgstr "Namen von existierenden Gruppen aktualisieren"
#: 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"
msgstr "Gruppenbesitzer überschreiben"
#: preferences.py:64
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr "Namen von existierenden Räumen aktualisieren"
#: preferences.py:72
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr "Bereits existierende Aufsichtsgebiete aktualisieren"
#: preferences.py:80
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr "Kursgruppen nutzen"
#: preferences.py:82
msgid "Build or search course groups for every course instead of setting classes as groups."
msgstr "Baut oder findet Kursgruppen für jeden Kurs anstatt die Klassengruppen zu setzen."
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgstr ""
"Sucht Kursgruppen für jeden Kurs, anstatt Klassen als Gruppen zu setzen."
#: templates/untis/xml_import.html:7 templates/untis/xml_import.html:8
msgid "Import Untis data via XML"
msgstr "Untis-Daten aus XML importieren"
#: aleksis/apps/untis/preferences.py:105
msgid "Create non-existing course groups"
msgstr "Nicht existierende Kursgruppen erstellen"
#: templates/untis/xml_import.html:13
msgid ""
"\n"
" Untis provides a function for exporting all data as an XML file.\n"
" "
msgstr ""
"\n"
" Untis bietet eine Funktion zum Exportieren aller Daten als XML-Datei.\n"
" "
#: aleksis/apps/untis/preferences.py:106
msgid "Only used if 'Use course groups' is enabled."
msgstr "Wird nur benutzt, wenn 'Kursgruppen nutzen' aktiviert ist."
#: templates/untis/xml_import.html:20
msgid ""
"\n"
" Newly imported data will be valid as of tomorrow.\n"
" "
#: aleksis/apps/untis/preferences.py:114
msgid "Register a data problem if a course group has been not found."
msgstr ""
"\n"
" Neu importierte Daten sind ab morgen gültig.\n"
" "
"Ein Datenproblem registrieren, wenn eine Kursgruppe nicht gefunden wurde."
#: templates/untis/xml_import.html:23
msgid ""
"\n"
" The effective dates of all existing lessons will be set to end\n"
" today.\n"
" "
msgstr ""
"\n"
" Die Gültigkeitsdauer aller vorhandenen Schulstunden endet\n"
" heute.\n"
" "
#: 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"
#: templates/untis/xml_import.html:27
msgid ""
"\n"
" The effective dates of all newly imported lessons will be set to\n"
" start tomorrow.\n"
" "
msgstr ""
"\n"
" Die Gültigkeitsdauer aller neu-importierten Schulstunden\n"
" startet morgen.\n"
" "
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr "Funktioniert nur, wenn 'Kursgruppen benutzen' aktiviert ist."
#: templates/untis/xml_import.html:31
msgid ""
"\n"
" Teachers, rooms, subjects and classes and periods will be updated in place.\n"
" "
msgstr ""
"\n"
" Lehrer, Räume, Fächer und Klassen und Schulstunden werden aktualisiert.\n"
" "
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr "Unvollständige Vertretungen ignorieren"
#: templates/untis/xml_import.html:40
msgid "Import data"
msgstr "Daten importieren"
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr "Klausur"
#: util/mysql/importers/lessons.py:45
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
msgid "Import lesson {}"
msgstr "Importiere Stunde {}"
#: util/mysql/importers/lessons.py:48
#: aleksis/apps/untis/util/mysql/importers/lessons.py:49
msgid " Skip because missing times"
msgstr " Wird wegen fehlender Zeiten übersprungen"
#: util/mysql/importers/lessons.py:105
#: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject"
msgstr " Wird wegen fehlendem Fach übersprungen"
#: util/mysql/importers/lessons.py:266
msgid "Deleted by UNTIS import"
msgstr "Gelöscht durch UNTIS-Import"
#: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by Untis import"
msgstr "Gelöscht durch Untis-Import"
#~ msgid "Untis XML export"
#~ msgstr "Untis-XML-Export"
#~ msgid "Path to Untis XML export file"
#~ msgstr "Pfad zur Untis-XML-Exportdatei"
#~ msgid "Untis XML import"
#~ msgstr "Untis-XML-Import"
#~ msgid "Can do XML import"
#~ msgstr "Kann XML-Import durchführen"
#~ msgid "Import Untis data via XML"
#~ msgstr "Untis-Daten aus XML importieren"
#~ msgid ""
#~ "\n"
#~ " Untis provides a function for exporting all data as an XML file.\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ " Untis bietet eine Funktion zum Exportieren aller Daten als XML-Datei.\n"
#~ " "
#~ msgid ""
#~ "\n"
#~ " Newly imported data will be valid as of tomorrow.\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ " Neu importierte Daten sind ab morgen gültig.\n"
#~ " "
#~ msgid ""
#~ "\n"
#~ " The effective dates of all existing lessons will be set to end\n"
#~ " today.\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ " Die Gültigkeitsdauer aller vorhandenen Schulstunden endet\n"
#~ " heute.\n"
#~ " "
#~ msgid ""
#~ "\n"
#~ " The effective dates of all newly imported lessons will be set to\n"
#~ " start tomorrow.\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ " Die Gültigkeitsdauer aller neu-importierten Schulstunden\n"
#~ " startet morgen.\n"
#~ " "
#~ msgid ""
#~ "\n"
#~ " Teachers, rooms, subjects and classes and periods will be updated in place.\n"
#~ " "
#~ msgstr ""
#~ "\n"
#~ " Lehrer, Räume, Fächer und Klassen und Schulstunden werden aktualisiert.\n"
#~ " "
#~ msgid "Import data"
#~ msgstr "Daten importieren"
#: util/xml/xml.py:76
#, python-format
msgid "Class %s"
msgstr "Klasse %s"
#~ msgid "Class %s"
#~ msgstr "Klasse %s"
#: util/xml/xml.py:92
#, python-format
msgid "Could not set class teacher of %(class)s to %(teacher)s."
msgstr "Der Klassenlehrer von %(class)s konnte nicht auf %(teacher)s gesetzt werden."
#~ msgid "Could not set class teacher of %(class)s to %(teacher)s."
#~ msgstr "Der Klassenlehrer von %(class)s konnte nicht auf %(teacher)s gesetzt werden."
#: util/xml/xml.py:153
#, python-format
msgid "Invalid list of classes: %s"
msgstr "Ungültige Liste von Klassen: %s"
#~ msgid "Invalid list of classes: %s"
#~ msgstr "Ungültige Liste von Klassen: %s"
#: util/xml/xml.py:161
#, python-format
msgid "Failed to import lesson: Teacher %s does not exist."
msgstr "Fehler beim Importieren der Stunde: Lehrer %s existiert nicht."
#~ msgid "Failed to import lesson: Teacher %s does not exist."
#~ msgstr "Fehler beim Importieren der Stunde: Lehrer %s existiert nicht."
#~ msgid "UNTIS subject"
#~ msgstr "UNTIS-Fach"
#~ msgid "Untis subject"
#~ msgstr "Untis-Fach"
#~ 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."
#~ 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."
#~ msgid "Term id in UNTIS"
#~ msgstr "ID der Periode in UNTIS"
#~ msgid "Term id in Untis"
#~ msgstr "ID der Periode in Untis"
#~ msgid "Assign subjects to groups"
#~ msgstr "Fächer zu Gruppen zuordnen"
......@@ -228,11 +293,11 @@ msgstr "Fehler beim Importieren der Stunde: Lehrer %s existiert nicht."
#~ msgid ""
#~ "\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 ""
#~ "\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"
#~ " "
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-05 21:26+0100\n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -18,179 +18,168 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: forms.py:6
msgid "Untis XML export"
#: aleksis/apps/untis/data_checks.py:9
msgid "Course groups created by the Untis import because no matching group has been found."
msgstr ""
#: management/commands/untis_import_xml.py:9
msgid "Path to Untis XML export file"
#: aleksis/apps/untis/data_checks.py:12
msgid "The Untis import created a new course group because no matching group has been found."
msgstr ""
#: menus.py:6
msgid "Untis XML import"
#: aleksis/apps/untis/data_checks.py:25
msgid "Course group not set by the Untis import because no matching group has been found."
msgstr ""
#: menus.py:13
msgid "Link subjects to groups (for UNTIS MySQL import)"
#: 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 ""
#: model_extensions.py:9 model_extensions.py:12 model_extensions.py:15
#: model_extensions.py:20 model_extensions.py:32 model_extensions.py:35
#: model_extensions.py:38 model_extensions.py:54 model_extensions.py:57
#: model_extensions.py:60 model_extensions.py:63 model_extensions.py:66
#: model_extensions.py:69 model_extensions.py:72
msgid "UNTIS import reference"
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr ""
#: 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
msgid "Untis import reference"
msgstr ""
#: model_extensions.py:23
msgid "UNTIS school year ID"
#: aleksis/apps/untis/model_extensions.py:23
msgid "Untis school year ID"
msgstr ""
#: model_extensions.py:26
msgid "UNTIS school id"
#: aleksis/apps/untis/model_extensions.py:26
msgid "Untis school id"
msgstr ""
#: model_extensions.py:29
msgid "UNTIS version id"
#: aleksis/apps/untis/model_extensions.py:29
msgid "Untis version id"
msgstr ""
#: model_extensions.py:41
msgid "Lesson id in UNTIS"
#: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in Untis"
msgstr ""
#: model_extensions.py:45 model_extensions.py:50
msgid "Number of lesson element in UNTIS"
#: aleksis/apps/untis/model_extensions.py:45
#: aleksis/apps/untis/model_extensions.py:50
msgid "Number of lesson element in Untis"
msgstr ""
#: models.py:4222
msgid "Can do XML import"
#: 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 ""
#: models.py:4223
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr ""
#: preferences.py:8
msgid "UNTIS: MySQL"
#: aleksis/apps/untis/preferences.py:8
msgid "Untis: MySQL"
msgstr ""
#: preferences.py:16
#: aleksis/apps/untis/preferences.py:16
msgid "School ID in Untis database"
msgstr ""
#: aleksis/apps/untis/preferences.py:24
msgid "Update values of existing subjects"
msgstr ""
#: preferences.py:24
#: aleksis/apps/untis/preferences.py:32
msgid "Update short name of existing persons"
msgstr ""
#: preferences.py:32
#: aleksis/apps/untis/preferences.py:40
msgid "Update name of existing persons"
msgstr ""
#: preferences.py:40
#: aleksis/apps/untis/preferences.py:48
msgid "Update short name of existing groups"
msgstr ""
#: preferences.py:48
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups"
msgstr ""
#: 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"
msgstr ""
#: preferences.py:64
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr ""
#: preferences.py:72
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr ""
#: preferences.py:80
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr ""
#: preferences.py:82
msgid "Build or search course groups for every course instead of setting classes as groups."
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgstr ""
#: templates/untis/xml_import.html:7 templates/untis/xml_import.html:8
msgid "Import Untis data via XML"
#: aleksis/apps/untis/preferences.py:105
msgid "Create non-existing course groups"
msgstr ""
#: templates/untis/xml_import.html:13
msgid ""
"\n"
" Untis provides a function for exporting all data as an XML file.\n"
" "
#: aleksis/apps/untis/preferences.py:106
msgid "Only used if 'Use course groups' is enabled."
msgstr ""
#: templates/untis/xml_import.html:20
msgid ""
"\n"
" Newly imported data will be valid as of tomorrow.\n"
" "
#: aleksis/apps/untis/preferences.py:114
msgid "Register a data problem if a course group has been not found."
msgstr ""
#: templates/untis/xml_import.html:23
msgid ""
"\n"
" The effective dates of all existing lessons will be set to end\n"
" today.\n"
" "
#: aleksis/apps/untis/preferences.py:122
msgid "Match course groups by a subset of parent groups if no 100% match is found"
msgstr ""
#: templates/untis/xml_import.html:27
msgid ""
"\n"
" The effective dates of all newly imported lessons will be set to\n"
" start tomorrow.\n"
" "
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: templates/untis/xml_import.html:31
msgid ""
"\n"
" Teachers, rooms, subjects and classes and periods will be updated in place.\n"
" "
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: templates/untis/xml_import.html:40
msgid "Import data"
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr ""
#: util/mysql/importers/lessons.py:45
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
msgid "Import lesson {}"
msgstr ""
#: util/mysql/importers/lessons.py:48
#: aleksis/apps/untis/util/mysql/importers/lessons.py:49
msgid " Skip because missing times"
msgstr ""
#: util/mysql/importers/lessons.py:105
#: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject"
msgstr ""
#: util/mysql/importers/lessons.py:266
msgid "Deleted by UNTIS import"
msgstr ""
#: util/xml/xml.py:76
#, python-format
msgid "Class %s"
msgstr ""
#: util/xml/xml.py:92
#, python-format
msgid "Could not set class teacher of %(class)s to %(teacher)s."
msgstr ""
#: util/xml/xml.py:153
#, python-format
msgid "Invalid list of classes: %s"
msgstr ""
#: util/xml/xml.py:161
#, python-format
msgid "Failed to import lesson: Teacher %s does not exist."
#: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by Untis import"
msgstr ""
......@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-05 21:26+0100\n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: 2020-08-25 17:42+0000\n"
"Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n"
"Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis-app-untis/la/>\n"
......@@ -18,181 +18,170 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.1.1\n"
#: forms.py:6
msgid "Untis XML export"
#: aleksis/apps/untis/data_checks.py:9
msgid "Course groups created by the Untis import because no matching group has been found."
msgstr ""
#: management/commands/untis_import_xml.py:9
msgid "Path to Untis XML export file"
#: aleksis/apps/untis/data_checks.py:12
msgid "The Untis import created a new course group because no matching group has been found."
msgstr ""
#: menus.py:6
msgid "Untis XML import"
#: aleksis/apps/untis/data_checks.py:25
msgid "Course group not set by the Untis import because no matching group has been found."
msgstr ""
#: menus.py:13
msgid "Link subjects to groups (for UNTIS MySQL import)"
#: 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 ""
#: model_extensions.py:9 model_extensions.py:12 model_extensions.py:15
#: model_extensions.py:20 model_extensions.py:32 model_extensions.py:35
#: model_extensions.py:38 model_extensions.py:54 model_extensions.py:57
#: model_extensions.py:60 model_extensions.py:63 model_extensions.py:66
#: model_extensions.py:69 model_extensions.py:72
msgid "UNTIS import reference"
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr ""
#: 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
msgid "Untis import reference"
msgstr ""
#: model_extensions.py:23
msgid "UNTIS school year ID"
#: aleksis/apps/untis/model_extensions.py:23
msgid "Untis school year ID"
msgstr ""
#: model_extensions.py:26
msgid "UNTIS school id"
#: aleksis/apps/untis/model_extensions.py:26
msgid "Untis school id"
msgstr ""
#: model_extensions.py:29
msgid "UNTIS version id"
#: aleksis/apps/untis/model_extensions.py:29
msgid "Untis version id"
msgstr ""
#: model_extensions.py:41
msgid "Lesson id in UNTIS"
#: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in Untis"
msgstr ""
#: model_extensions.py:45 model_extensions.py:50
msgid "Number of lesson element in UNTIS"
#: aleksis/apps/untis/model_extensions.py:45
#: aleksis/apps/untis/model_extensions.py:50
msgid "Number of lesson element in Untis"
msgstr ""
#: models.py:4222
msgid "Can do XML import"
#: 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 ""
#: models.py:4223
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr ""
#: preferences.py:8
msgid "UNTIS: MySQL"
#: aleksis/apps/untis/preferences.py:8
msgid "Untis: MySQL"
msgstr ""
#: preferences.py:16
#: aleksis/apps/untis/preferences.py:16
msgid "School ID in Untis database"
msgstr ""
#: aleksis/apps/untis/preferences.py:24
msgid "Update values of existing subjects"
msgstr ""
#: preferences.py:24
#: aleksis/apps/untis/preferences.py:32
msgid "Update short name of existing persons"
msgstr ""
#: preferences.py:32
#: aleksis/apps/untis/preferences.py:40
msgid "Update name of existing persons"
msgstr ""
#: preferences.py:40
#: aleksis/apps/untis/preferences.py:48
msgid "Update short name of existing groups"
msgstr ""
#: preferences.py:48
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups"
msgstr ""
#: 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"
msgstr ""
#: preferences.py:64
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr ""
#: preferences.py:72
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr ""
#: preferences.py:80
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr ""
#: preferences.py:82
msgid "Build or search course groups for every course instead of setting classes as groups."
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgstr ""
#: templates/untis/xml_import.html:7 templates/untis/xml_import.html:8
msgid "Import Untis data via XML"
#: aleksis/apps/untis/preferences.py:105
msgid "Create non-existing course groups"
msgstr ""
#: templates/untis/xml_import.html:13
msgid ""
"\n"
" Untis provides a function for exporting all data as an XML file.\n"
" "
#: aleksis/apps/untis/preferences.py:106
msgid "Only used if 'Use course groups' is enabled."
msgstr ""
#: templates/untis/xml_import.html:20
msgid ""
"\n"
" Newly imported data will be valid as of tomorrow.\n"
" "
#: aleksis/apps/untis/preferences.py:114
msgid "Register a data problem if a course group has been not found."
msgstr ""
#: templates/untis/xml_import.html:23
msgid ""
"\n"
" The effective dates of all existing lessons will be set to end\n"
" today.\n"
" "
#: aleksis/apps/untis/preferences.py:122
msgid "Match course groups by a subset of parent groups if no 100% match is found"
msgstr ""
#: templates/untis/xml_import.html:27
msgid ""
"\n"
" The effective dates of all newly imported lessons will be set to\n"
" start tomorrow.\n"
" "
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: templates/untis/xml_import.html:31
msgid ""
"\n"
" Teachers, rooms, subjects and classes and periods will be updated in place.\n"
" "
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: templates/untis/xml_import.html:40
msgid "Import data"
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr ""
#: util/mysql/importers/lessons.py:45
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
msgid "Import lesson {}"
msgstr ""
#: util/mysql/importers/lessons.py:48
#: aleksis/apps/untis/util/mysql/importers/lessons.py:49
msgid " Skip because missing times"
msgstr ""
#: util/mysql/importers/lessons.py:105
#: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject"
msgstr ""
#: util/mysql/importers/lessons.py:266
msgid "Deleted by UNTIS import"
msgstr ""
#: util/xml/xml.py:76
#, python-format
msgid "Class %s"
msgstr ""
#: util/xml/xml.py:92
#, python-format
msgid "Could not set class teacher of %(class)s to %(teacher)s."
msgstr ""
#: util/xml/xml.py:153
#, python-format
msgid "Invalid list of classes: %s"
msgstr ""
#: util/xml/xml.py:161
#, python-format
msgid "Failed to import lesson: Teacher %s does not exist."
#: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by Untis import"
msgstr ""
#~ msgid "Group"
......
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-05 21:26+0100\n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -17,179 +17,168 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: forms.py:6
msgid "Untis XML export"
#: aleksis/apps/untis/data_checks.py:9
msgid "Course groups created by the Untis import because no matching group has been found."
msgstr ""
#: management/commands/untis_import_xml.py:9
msgid "Path to Untis XML export file"
#: aleksis/apps/untis/data_checks.py:12
msgid "The Untis import created a new course group because no matching group has been found."
msgstr ""
#: menus.py:6
msgid "Untis XML import"
#: aleksis/apps/untis/data_checks.py:25
msgid "Course group not set by the Untis import because no matching group has been found."
msgstr ""
#: menus.py:13
msgid "Link subjects to groups (for UNTIS MySQL import)"
#: 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 ""
#: model_extensions.py:9 model_extensions.py:12 model_extensions.py:15
#: model_extensions.py:20 model_extensions.py:32 model_extensions.py:35
#: model_extensions.py:38 model_extensions.py:54 model_extensions.py:57
#: model_extensions.py:60 model_extensions.py:63 model_extensions.py:66
#: model_extensions.py:69 model_extensions.py:72
msgid "UNTIS import reference"
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr ""
#: 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
msgid "Untis import reference"
msgstr ""
#: model_extensions.py:23
msgid "UNTIS school year ID"
#: aleksis/apps/untis/model_extensions.py:23
msgid "Untis school year ID"
msgstr ""
#: model_extensions.py:26
msgid "UNTIS school id"
#: aleksis/apps/untis/model_extensions.py:26
msgid "Untis school id"
msgstr ""
#: model_extensions.py:29
msgid "UNTIS version id"
#: aleksis/apps/untis/model_extensions.py:29
msgid "Untis version id"
msgstr ""
#: model_extensions.py:41
msgid "Lesson id in UNTIS"
#: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in Untis"
msgstr ""
#: model_extensions.py:45 model_extensions.py:50
msgid "Number of lesson element in UNTIS"
#: aleksis/apps/untis/model_extensions.py:45
#: aleksis/apps/untis/model_extensions.py:50
msgid "Number of lesson element in Untis"
msgstr ""
#: models.py:4222
msgid "Can do XML import"
#: 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 ""
#: models.py:4223
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr ""
#: preferences.py:8
msgid "UNTIS: MySQL"
#: aleksis/apps/untis/preferences.py:8
msgid "Untis: MySQL"
msgstr ""
#: preferences.py:16
#: aleksis/apps/untis/preferences.py:16
msgid "School ID in Untis database"
msgstr ""
#: aleksis/apps/untis/preferences.py:24
msgid "Update values of existing subjects"
msgstr ""
#: preferences.py:24
#: aleksis/apps/untis/preferences.py:32
msgid "Update short name of existing persons"
msgstr ""
#: preferences.py:32
#: aleksis/apps/untis/preferences.py:40
msgid "Update name of existing persons"
msgstr ""
#: preferences.py:40
#: aleksis/apps/untis/preferences.py:48
msgid "Update short name of existing groups"
msgstr ""
#: preferences.py:48
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups"
msgstr ""
#: 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"
msgstr ""
#: preferences.py:64
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr ""
#: preferences.py:72
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr ""
#: preferences.py:80
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr ""
#: preferences.py:82
msgid "Build or search course groups for every course instead of setting classes as groups."
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgstr ""
#: templates/untis/xml_import.html:7 templates/untis/xml_import.html:8
msgid "Import Untis data via XML"
#: aleksis/apps/untis/preferences.py:105
msgid "Create non-existing course groups"
msgstr ""
#: templates/untis/xml_import.html:13
msgid ""
"\n"
" Untis provides a function for exporting all data as an XML file.\n"
" "
#: aleksis/apps/untis/preferences.py:106
msgid "Only used if 'Use course groups' is enabled."
msgstr ""
#: templates/untis/xml_import.html:20
msgid ""
"\n"
" Newly imported data will be valid as of tomorrow.\n"
" "
#: aleksis/apps/untis/preferences.py:114
msgid "Register a data problem if a course group has been not found."
msgstr ""
#: templates/untis/xml_import.html:23
msgid ""
"\n"
" The effective dates of all existing lessons will be set to end\n"
" today.\n"
" "
#: aleksis/apps/untis/preferences.py:122
msgid "Match course groups by a subset of parent groups if no 100% match is found"
msgstr ""
#: templates/untis/xml_import.html:27
msgid ""
"\n"
" The effective dates of all newly imported lessons will be set to\n"
" start tomorrow.\n"
" "
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: templates/untis/xml_import.html:31
msgid ""
"\n"
" Teachers, rooms, subjects and classes and periods will be updated in place.\n"
" "
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: templates/untis/xml_import.html:40
msgid "Import data"
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr ""
#: util/mysql/importers/lessons.py:45
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
msgid "Import lesson {}"
msgstr ""
#: util/mysql/importers/lessons.py:48
#: aleksis/apps/untis/util/mysql/importers/lessons.py:49
msgid " Skip because missing times"
msgstr ""
#: util/mysql/importers/lessons.py:105
#: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject"
msgstr ""
#: util/mysql/importers/lessons.py:266
msgid "Deleted by UNTIS import"
msgstr ""
#: util/xml/xml.py:76
#, python-format
msgid "Class %s"
msgstr ""
#: util/xml/xml.py:92
#, python-format
msgid "Could not set class teacher of %(class)s to %(teacher)s."
msgstr ""
#: util/xml/xml.py:153
#, python-format
msgid "Invalid list of classes: %s"
msgstr ""
#: util/xml/xml.py:161
#, python-format
msgid "Failed to import lesson: Teacher %s does not exist."
#: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by Untis import"
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 ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-05 21:26+0100\n"
"POT-Creation-Date: 2022-06-21 11:41+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -17,179 +17,168 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: forms.py:6
msgid "Untis XML export"
#: aleksis/apps/untis/data_checks.py:9
msgid "Course groups created by the Untis import because no matching group has been found."
msgstr ""
#: management/commands/untis_import_xml.py:9
msgid "Path to Untis XML export file"
#: aleksis/apps/untis/data_checks.py:12
msgid "The Untis import created a new course group because no matching group has been found."
msgstr ""
#: menus.py:6
msgid "Untis XML import"
#: aleksis/apps/untis/data_checks.py:25
msgid "Course group not set by the Untis import because no matching group has been found."
msgstr ""
#: menus.py:13
msgid "Link subjects to groups (for UNTIS MySQL import)"
#: 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 ""
#: model_extensions.py:9 model_extensions.py:12 model_extensions.py:15
#: model_extensions.py:20 model_extensions.py:32 model_extensions.py:35
#: model_extensions.py:38 model_extensions.py:54 model_extensions.py:57
#: model_extensions.py:60 model_extensions.py:63 model_extensions.py:66
#: model_extensions.py:69 model_extensions.py:72
msgid "UNTIS import reference"
#: aleksis/apps/untis/menus.py:6
msgid "Link subjects to groups (for Untis MySQL import)"
msgstr ""
#: 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
msgid "Untis import reference"
msgstr ""
#: model_extensions.py:23
msgid "UNTIS school year ID"
#: aleksis/apps/untis/model_extensions.py:23
msgid "Untis school year ID"
msgstr ""
#: model_extensions.py:26
msgid "UNTIS school id"
#: aleksis/apps/untis/model_extensions.py:26
msgid "Untis school id"
msgstr ""
#: model_extensions.py:29
msgid "UNTIS version id"
#: aleksis/apps/untis/model_extensions.py:29
msgid "Untis version id"
msgstr ""
#: model_extensions.py:41
msgid "Lesson id in UNTIS"
#: aleksis/apps/untis/model_extensions.py:41
msgid "Lesson id in Untis"
msgstr ""
#: model_extensions.py:45 model_extensions.py:50
msgid "Number of lesson element in UNTIS"
#: aleksis/apps/untis/model_extensions.py:45
#: aleksis/apps/untis/model_extensions.py:50
msgid "Number of lesson element in Untis"
msgstr ""
#: models.py:4222
msgid "Can do XML import"
#: 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 ""
#: models.py:4223
#: aleksis/apps/untis/models.py:4253
msgid "Can assign subjects to groups"
msgstr ""
#: preferences.py:8
msgid "UNTIS: MySQL"
#: aleksis/apps/untis/preferences.py:8
msgid "Untis: MySQL"
msgstr ""
#: preferences.py:16
#: aleksis/apps/untis/preferences.py:16
msgid "School ID in Untis database"
msgstr ""
#: aleksis/apps/untis/preferences.py:24
msgid "Update values of existing subjects"
msgstr ""
#: preferences.py:24
#: aleksis/apps/untis/preferences.py:32
msgid "Update short name of existing persons"
msgstr ""
#: preferences.py:32
#: aleksis/apps/untis/preferences.py:40
msgid "Update name of existing persons"
msgstr ""
#: preferences.py:40
#: aleksis/apps/untis/preferences.py:48
msgid "Update short name of existing groups"
msgstr ""
#: preferences.py:48
#: aleksis/apps/untis/preferences.py:56
msgid "Update name of existing groups"
msgstr ""
#: 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"
msgstr ""
#: preferences.py:64
#: aleksis/apps/untis/preferences.py:80
msgid "Update name of existing rooms"
msgstr ""
#: preferences.py:72
#: aleksis/apps/untis/preferences.py:88
msgid "Update existing supervision areas"
msgstr ""
#: preferences.py:80
#: aleksis/apps/untis/preferences.py:96
msgid "Use course groups"
msgstr ""
#: preferences.py:82
msgid "Build or search course groups for every course instead of setting classes as groups."
#: aleksis/apps/untis/preferences.py:97
msgid "Search course groups for every course instead of setting classes as groups."
msgstr ""
#: templates/untis/xml_import.html:7 templates/untis/xml_import.html:8
msgid "Import Untis data via XML"
#: aleksis/apps/untis/preferences.py:105
msgid "Create non-existing course groups"
msgstr ""
#: templates/untis/xml_import.html:13
msgid ""
"\n"
" Untis provides a function for exporting all data as an XML file.\n"
" "
#: aleksis/apps/untis/preferences.py:106
msgid "Only used if 'Use course groups' is enabled."
msgstr ""
#: templates/untis/xml_import.html:20
msgid ""
"\n"
" Newly imported data will be valid as of tomorrow.\n"
" "
#: aleksis/apps/untis/preferences.py:114
msgid "Register a data problem if a course group has been not found."
msgstr ""
#: templates/untis/xml_import.html:23
msgid ""
"\n"
" The effective dates of all existing lessons will be set to end\n"
" today.\n"
" "
#: aleksis/apps/untis/preferences.py:122
msgid "Match course groups by a subset of parent groups if no 100% match is found"
msgstr ""
#: templates/untis/xml_import.html:27
msgid ""
"\n"
" The effective dates of all newly imported lessons will be set to\n"
" start tomorrow.\n"
" "
#: aleksis/apps/untis/preferences.py:123
msgid "Works only if 'Use course groups' is activated."
msgstr ""
#: templates/untis/xml_import.html:31
msgid ""
"\n"
" Teachers, rooms, subjects and classes and periods will be updated in place.\n"
" "
#: aleksis/apps/untis/preferences.py:131
msgid "Ignore incomplete substitutions"
msgstr ""
#: templates/untis/xml_import.html:40
msgid "Import data"
#: aleksis/apps/untis/util/mysql/importers/exams.py:123
msgid "Exam"
msgstr ""
#: util/mysql/importers/lessons.py:45
#: aleksis/apps/untis/util/mysql/importers/lessons.py:46
msgid "Import lesson {}"
msgstr ""
#: util/mysql/importers/lessons.py:48
#: aleksis/apps/untis/util/mysql/importers/lessons.py:49
msgid " Skip because missing times"
msgstr ""
#: util/mysql/importers/lessons.py:105
#: aleksis/apps/untis/util/mysql/importers/lessons.py:110
msgid " Skip because missing subject"
msgstr ""
#: util/mysql/importers/lessons.py:266
msgid "Deleted by UNTIS import"
msgstr ""
#: util/xml/xml.py:76
#, python-format
msgid "Class %s"
msgstr ""
#: util/xml/xml.py:92
#, python-format
msgid "Could not set class teacher of %(class)s to %(teacher)s."
msgstr ""
#: util/xml/xml.py:153
#, python-format
msgid "Invalid list of classes: %s"
msgstr ""
#: util/xml/xml.py:161
#, python-format
msgid "Failed to import lesson: Teacher %s does not exist."
#: aleksis/apps/untis/util/mysql/importers/lessons.py:331
msgid "Deleted by Untis import"
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"