Source code for kadi.modules.sysadmin.forms
# Copyright 2021 Karlsruhe Institute of Technology
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from flask_babel import lazy_gettext as _l
from kadi.lib.conversion import empty_str
from kadi.lib.forms import BaseConfigForm
from kadi.lib.forms import BooleanField
from kadi.lib.forms import FileField
from kadi.lib.forms import JSONField
from kadi.lib.forms import LFTextAreaField
[docs]class CustomizationConfigForm(BaseConfigForm):
"""A form for use in setting global config items related to customization."""
broadcast_message = LFTextAreaField(
_l("Broadcast message"),
filters=[empty_str],
description=_l("Shown at the top of all pages to all logged-in users."),
)
nav_footer_items = NavFooterField(
_l("Navigation footer items"),
description=_l(
"Shown on all pages in the footer next to the existing navigation items."
),
)
index_image = FileField(
_l("Index image"),
description=_l("Shown on the index page next to the index text."),
)
remove_image = BooleanField(_l("Remove current image"))
index_text = LFTextAreaField(
_l("Index text"),
filters=[empty_str],
description=_l("Shown on the index page next to the index image."),
)
def __init__(self, *args, **kwargs):
super().__init__(
*args, ignored_fields={"index_image", "remove_image"}, **kwargs
)
[docs]class LegalsConfigForm(BaseConfigForm):
"""A form for use in setting global config items related to legal notices."""
terms_of_use = LFTextAreaField(
_l("Terms of use"),
filters=[empty_str],
description=_l(
"A corresponding shortcut in the navigation footer will be created"
" automatically."
),
)
privacy_policy = LFTextAreaField(
_l("Privacy policy"),
filters=[empty_str],
description=_l(
"A corresponding shortcut in the navigation footer will be created"
" automatically."
),
)
enforce_legals = BooleanField(
_l("Enforce legal notices"),
description=_l(
"Require all users to accept the terms of use and/or privacy policy, if at"
" least one of them is configured."
),
)
legal_notice = LFTextAreaField(
_l("Legal notice"),
filters=[empty_str],
description=_l(
"A corresponding shortcut in the navigation footer will be created"
" automatically."
),
)
[docs]class MiscConfigForm(BaseConfigForm):
"""A form for use in setting miscellaneous global config items."""
robots_noindex = BooleanField(
_l("Do not index website"),
description=_l(
"Exclude this website from being indexed by all major search engines."
),
)