mirror of
https://github.com/ChristianLight/tutor.git
synced 2024-12-13 14:43:03 +00:00
Merge remote-tracking branch 'origin/master' into nightly
This commit is contained in:
commit
a1b1945908
4
changelog.d/20230326_102311_regis_moar_tasks.md
Normal file
4
changelog.d/20230326_102311_regis_moar_tasks.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
- [Feature] Make it possible to import the demo course from a different git repository or version. (by @regisb)
|
||||||
|
- [Feature] Add a convenient `do print-edx-platform-setting` command to print the value of an edx-platform setting. (by @regisb)
|
||||||
|
- [Improvement] Improve edx-platform logging by silencing a couple deprecation warnings. (by @regisb)
|
||||||
|
- [Feature] Add a convenient `do sqlshell` command to enter a SQL shell as root. (by @regisb)
|
@ -10,7 +10,7 @@ import click
|
|||||||
from typing_extensions import ParamSpec
|
from typing_extensions import ParamSpec
|
||||||
|
|
||||||
from tutor import config as tutor_config
|
from tutor import config as tutor_config
|
||||||
from tutor import env, fmt, hooks
|
from tutor import env, fmt, hooks, utils
|
||||||
from tutor.hooks import priorities
|
from tutor.hooks import priorities
|
||||||
|
|
||||||
|
|
||||||
@ -139,17 +139,52 @@ u.save()"
|
|||||||
|
|
||||||
|
|
||||||
@click.command(help="Import the demo course")
|
@click.command(help="Import the demo course")
|
||||||
def importdemocourse() -> t.Iterable[tuple[str, str]]:
|
@click.option(
|
||||||
template = """
|
"-r",
|
||||||
|
"--repo",
|
||||||
|
default="https://github.com/openedx/edx-demo-course",
|
||||||
|
show_default=True,
|
||||||
|
help="Git repository that contains the course to be imported",
|
||||||
|
)
|
||||||
|
@click.option(
|
||||||
|
"-v",
|
||||||
|
"--version",
|
||||||
|
help="Git branch, tag or sha1 identifier. If unspecified, will default to the value of the OPENEDX_COMMON_VERSION setting.",
|
||||||
|
)
|
||||||
|
def importdemocourse(
|
||||||
|
repo: str, version: t.Optional[str]
|
||||||
|
) -> t.Iterable[tuple[str, str]]:
|
||||||
|
version = version or "{{ OPENEDX_COMMON_VERSION }}"
|
||||||
|
template = f"""
|
||||||
# Import demo course
|
# Import demo course
|
||||||
git clone https://github.com/openedx/edx-demo-course --branch {{ OPENEDX_COMMON_VERSION }} --depth 1 ../edx-demo-course
|
git clone {repo} --branch {version} --depth 1 /tmp/course
|
||||||
python ./manage.py cms import ../data ../edx-demo-course
|
python ./manage.py cms import ../data /tmp/course
|
||||||
|
|
||||||
# Re-index courses
|
# Re-index courses
|
||||||
./manage.py cms reindex_course --all --setup"""
|
./manage.py cms reindex_course --all --setup"""
|
||||||
yield ("cms", template)
|
yield ("cms", template)
|
||||||
|
|
||||||
|
|
||||||
|
@click.command(
|
||||||
|
name="print-edx-platform-setting",
|
||||||
|
help="Print the value of an edx-platform Django setting.",
|
||||||
|
)
|
||||||
|
@click.argument("setting")
|
||||||
|
@click.option(
|
||||||
|
"-s",
|
||||||
|
"--service",
|
||||||
|
type=click.Choice(["lms", "cms"]),
|
||||||
|
default="lms",
|
||||||
|
show_default=True,
|
||||||
|
help="Service to fetch the setting from",
|
||||||
|
)
|
||||||
|
def print_edx_platform_setting(
|
||||||
|
setting: str, service: str
|
||||||
|
) -> t.Iterable[tuple[str, str]]:
|
||||||
|
command = f"./manage.py {service} shell -c 'from django.conf import settings; print(settings.{setting})'"
|
||||||
|
yield (service, command)
|
||||||
|
|
||||||
|
|
||||||
@click.command()
|
@click.command()
|
||||||
@click.option(
|
@click.option(
|
||||||
"-d",
|
"-d",
|
||||||
@ -207,6 +242,21 @@ def assign_theme(name, domain):
|
|||||||
return f'./manage.py lms shell -c "{python_command}"'
|
return f'./manage.py lms shell -c "{python_command}"'
|
||||||
|
|
||||||
|
|
||||||
|
@click.command(context_settings={"ignore_unknown_options": True})
|
||||||
|
@click.argument("args", nargs=-1)
|
||||||
|
def sqlshell(args: list[str]) -> t.Iterable[tuple[str, str]]:
|
||||||
|
"""
|
||||||
|
Open an SQL shell as root
|
||||||
|
|
||||||
|
Extra arguments will be passed to the `mysql` command verbatim. For instance, to
|
||||||
|
show tables from the "openedx" database, run `do sqlshell openedx -e 'show tables'`.
|
||||||
|
"""
|
||||||
|
command = "mysql --user={{ MYSQL_ROOT_USERNAME }} --password={{ MYSQL_ROOT_PASSWORD }} --host={{ MYSQL_HOST }} --port={{ MYSQL_PORT }}"
|
||||||
|
if args:
|
||||||
|
command += " " + utils._shlex_join(*args) # pylint: disable=protected-access
|
||||||
|
yield ("lms", command)
|
||||||
|
|
||||||
|
|
||||||
def add_job_commands(do_command_group: click.Group) -> None:
|
def add_job_commands(do_command_group: click.Group) -> None:
|
||||||
"""
|
"""
|
||||||
This is meant to be called with the `local/dev/k8s do` group commands, to add the
|
This is meant to be called with the `local/dev/k8s do` group commands, to add the
|
||||||
@ -285,6 +335,8 @@ hooks.Filters.CLI_DO_COMMANDS.add_items(
|
|||||||
createuser,
|
createuser,
|
||||||
importdemocourse,
|
importdemocourse,
|
||||||
initialise,
|
initialise,
|
||||||
|
print_edx_platform_setting,
|
||||||
settheme,
|
settheme,
|
||||||
|
sqlshell,
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
@ -143,6 +143,11 @@ warnings.filterwarnings("ignore", category=RemovedInDjango40Warning)
|
|||||||
warnings.filterwarnings("ignore", category=RemovedInDjango41Warning)
|
warnings.filterwarnings("ignore", category=RemovedInDjango41Warning)
|
||||||
warnings.filterwarnings("ignore", category=DeprecationWarning, module="lms.djangoapps.course_wiki.plugins.markdownedx.wiki_plugin")
|
warnings.filterwarnings("ignore", category=DeprecationWarning, module="lms.djangoapps.course_wiki.plugins.markdownedx.wiki_plugin")
|
||||||
warnings.filterwarnings("ignore", category=DeprecationWarning, module="wiki.plugins.links.wiki_plugin")
|
warnings.filterwarnings("ignore", category=DeprecationWarning, module="wiki.plugins.links.wiki_plugin")
|
||||||
|
warnings.filterwarnings("ignore", category=DeprecationWarning, module="boto.plugin")
|
||||||
|
warnings.filterwarnings("ignore", category=DeprecationWarning, module="botocore.vendored.requests.packages.urllib3._collections")
|
||||||
|
warnings.filterwarnings("ignore", category=DeprecationWarning, module="storages.backends.s3boto")
|
||||||
|
warnings.filterwarnings("ignore", category=DeprecationWarning, module="openedx.core.types.admin")
|
||||||
|
SILENCED_SYSTEM_CHECKS = ["2_0.W001", "fields.W903"]
|
||||||
|
|
||||||
# Email
|
# Email
|
||||||
EMAIL_USE_SSL = {{ SMTP_USE_SSL }}
|
EMAIL_USE_SSL = {{ SMTP_USE_SSL }}
|
||||||
|
@ -110,7 +110,7 @@ FROM minimal as production
|
|||||||
|
|
||||||
# Install system requirements
|
# Install system requirements
|
||||||
RUN apt update && \
|
RUN apt update && \
|
||||||
apt install -y gettext gfortran graphviz graphviz-dev libffi-dev libfreetype6-dev libgeos-dev libjpeg8-dev liblapack-dev libmysqlclient-dev libpng-dev libsqlite3-dev libxmlsec1-dev lynx ntp pkg-config rdfind && \
|
apt install -y gettext gfortran graphviz graphviz-dev libffi-dev libfreetype6-dev libgeos-dev libjpeg8-dev liblapack-dev libmysqlclient-dev libpng-dev libsqlite3-dev libxmlsec1-dev lynx mysql-client ntp pkg-config rdfind && \
|
||||||
rm -rf /var/lib/apt/lists/*
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# From then on, run as unprivileged "app" user
|
# From then on, run as unprivileged "app" user
|
||||||
|
Loading…
Reference in New Issue
Block a user