mirror of
https://codeberg.org/Mo8it/AdvLabDB.git
synced 2024-09-19 18:31:16 +00:00
Apply PL
This commit is contained in:
parent
a33a7ec060
commit
e2d5a920ec
7 changed files with 37 additions and 20 deletions
|
@ -25,7 +25,7 @@ def backup(backup_prefix):
|
||||||
now = datetime.now().strftime("%d_%m_%Y_%H_%M_%S")
|
now = datetime.now().strftime("%d_%m_%Y_%H_%M_%S")
|
||||||
dest = db_bk_dir / f"{backup_prefix}_{now}.sqlite"
|
dest = db_bk_dir / f"{backup_prefix}_{now}.sqlite"
|
||||||
|
|
||||||
status = subprocess.run(["sqlite3", db_path, f".backup {dest}"]).returncode
|
status = subprocess.run(["sqlite3", db_path, f".backup {dest}"], check=False).returncode
|
||||||
if status == 0:
|
if status == 0:
|
||||||
flash(f"Created a database backup at the path {dest}", "success")
|
flash(f"Created a database backup at the path {dest}", "success")
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -311,9 +311,8 @@ class UserView(SecureAdminModelView):
|
||||||
f"{model.email} registered with role(s): {', '.join(role.name for role in model.roles)}.",
|
f"{model.email} registered with role(s): {', '.join(role.name for role in model.roles)}.",
|
||||||
category="success",
|
category="success",
|
||||||
)
|
)
|
||||||
else:
|
elif model == current_user:
|
||||||
if model == current_user:
|
flash(f"Active semester is {model.active_semester}.", "warning")
|
||||||
flash(f"Active semester is {model.active_semester}.", "warning")
|
|
||||||
|
|
||||||
|
|
||||||
class SemesterView(SecureAdminModelView):
|
class SemesterView(SecureAdminModelView):
|
||||||
|
@ -418,10 +417,9 @@ class SemesterView(SecureAdminModelView):
|
||||||
else:
|
else:
|
||||||
current_user.active_semester = model
|
current_user.active_semester = model
|
||||||
flash(f"Active semester changed to the new semester {model}!", "warning")
|
flash(f"Active semester changed to the new semester {model}!", "warning")
|
||||||
else:
|
elif model.done:
|
||||||
if model.done:
|
next_semester = db.session.get(Semester, model.id + 1)
|
||||||
next_semester = db.session.get(Semester, model.id + 1)
|
model.set_done(next_semester)
|
||||||
model.set_done(next_semester)
|
|
||||||
|
|
||||||
|
|
||||||
def programQueryFactory():
|
def programQueryFactory():
|
||||||
|
|
|
@ -25,7 +25,7 @@ from .models import (
|
||||||
|
|
||||||
|
|
||||||
def is_null(entry):
|
def is_null(entry):
|
||||||
return entry == "NULL" or entry == ""
|
return entry in {"NULL", ""}
|
||||||
|
|
||||||
|
|
||||||
def nullable(entry):
|
def nullable(entry):
|
||||||
|
|
|
@ -457,13 +457,12 @@ class Appointment(db.Model):
|
||||||
if assistant is not None:
|
if assistant is not None:
|
||||||
if assistant not in semesterExperimentAssistants:
|
if assistant not in semesterExperimentAssistants:
|
||||||
raise DatabaseException(f"{assistant} is not responsible for {semesterExperiment}!")
|
raise DatabaseException(f"{assistant} is not responsible for {semesterExperiment}!")
|
||||||
|
elif len(semesterExperimentAssistants) == 1:
|
||||||
|
assistant = semesterExperimentAssistants[0]
|
||||||
else:
|
else:
|
||||||
if len(semesterExperimentAssistants) == 1:
|
raise DatabaseException(
|
||||||
assistant = semesterExperimentAssistants[0]
|
f"Experiment {semesterExperiment} has more than one assistant. You have to assign one of these assistants: {semesterExperimentAssistants}"
|
||||||
else:
|
)
|
||||||
raise DatabaseException(
|
|
||||||
f"Experiment {semesterExperiment} has more than one assistant. You have to assign one of these assistants: {semesterExperimentAssistants}"
|
|
||||||
)
|
|
||||||
|
|
||||||
return assistant
|
return assistant
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from datetime import date
|
from datetime import date
|
||||||
from math import ceil
|
from math import ceil
|
||||||
from random import randint, random
|
from random import randint
|
||||||
|
|
||||||
import click
|
import click
|
||||||
from flask_security.utils import hash_password
|
from flask_security.utils import hash_password
|
||||||
|
@ -97,7 +97,7 @@ def _generate_test_db():
|
||||||
part = ss_parts[ind % len(ss_parts)]
|
part = ss_parts[ind % len(ss_parts)]
|
||||||
add_part_student(student, part)
|
add_part_student(student, part)
|
||||||
|
|
||||||
if random() < 0.9: # nosec: B311
|
if ind % 10 < 9:
|
||||||
# Transfer to the next part in the second semester
|
# Transfer to the next part in the second semester
|
||||||
if part == bs_1_ss_part:
|
if part == bs_1_ss_part:
|
||||||
add_part_student(student, bs_2_ws_part)
|
add_part_student(student, bs_2_ws_part)
|
||||||
|
|
|
@ -13,7 +13,7 @@ from cli.test.generate_test_db.main import _generate_test_db
|
||||||
class Manage:
|
class Manage:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def run(command: str, **kwargs):
|
def run(command: str, **kwargs):
|
||||||
return subprocess.run(command, shell=True, **kwargs) # nosec B602
|
return subprocess.run(command, shell=True, check=False, **kwargs) # nosec B602
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def box(message: str):
|
def box(message: str):
|
||||||
|
|
|
@ -27,8 +27,28 @@ requires = ["poetry-core>=1.0.0"]
|
||||||
build-backend = "poetry.core.masonry.api"
|
build-backend = "poetry.core.masonry.api"
|
||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
select = ["E", "W", "F", "I", "UP", "YTT", "S", "B", "C4", "ICN", "PIE", "Q", "RET", "SIM", "TID", "PTH"]
|
select = [
|
||||||
ignore = ["E5", "S3", "S6", "RET504"]
|
"E",
|
||||||
|
"W",
|
||||||
|
"F",
|
||||||
|
"I",
|
||||||
|
"UP",
|
||||||
|
"YTT",
|
||||||
|
"S",
|
||||||
|
"B",
|
||||||
|
"C4",
|
||||||
|
"ICN",
|
||||||
|
"PIE",
|
||||||
|
"Q",
|
||||||
|
"RET",
|
||||||
|
"SIM",
|
||||||
|
"TID",
|
||||||
|
"PTH",
|
||||||
|
"ERA",
|
||||||
|
"PL",
|
||||||
|
"NPY",
|
||||||
|
]
|
||||||
|
ignore = ["E5", "S3", "S6", "RET504", "PLR0912", "PLR0915", "PLW2901", "PLR2004"]
|
||||||
line-length = 120
|
line-length = 120
|
||||||
|
|
||||||
[tool.ruff.per-file-ignores]
|
[tool.ruff.per-file-ignores]
|
||||||
|
|
Loading…
Reference in a new issue