mirror of
https://codeberg.org/Mo8it/AdvLabDB.git
synced 2024-12-20 23:41:20 +00:00
Further filter and sort
This commit is contained in:
parent
298eb1cc8f
commit
820bde2541
2 changed files with 37 additions and 7 deletions
|
@ -281,6 +281,10 @@ class SemesterView(SecureAdminModelView):
|
|||
"label",
|
||||
"year",
|
||||
]
|
||||
column_default_sort = [
|
||||
("year", True),
|
||||
("label", True),
|
||||
]
|
||||
|
||||
def customCreateModel(self, form):
|
||||
return Semester.customInitFromOldSemester(
|
||||
|
@ -553,9 +557,20 @@ class GroupView(SecureAdminModelView):
|
|||
|
||||
|
||||
class ExperimentView(SecureAdminModelView):
|
||||
class ProgramFilter(FilterEqual):
|
||||
def get_options(self, view):
|
||||
programs = Program.query
|
||||
return tuple((program.id, program.repr()) for program in programs)
|
||||
|
||||
def apply(self, query, value, alias=None):
|
||||
return query.filter(self.column.program_id == int(value))
|
||||
|
||||
can_view_details = True
|
||||
|
||||
column_filters = ("active",)
|
||||
column_filters = (
|
||||
ProgramFilter(Experiment, "Program"),
|
||||
"active",
|
||||
)
|
||||
column_list = [
|
||||
"number",
|
||||
"program",
|
||||
|
@ -574,6 +589,10 @@ class ExperimentView(SecureAdminModelView):
|
|||
"duration_in_days",
|
||||
"semester_experiments",
|
||||
]
|
||||
column_searchable_list = [
|
||||
"number",
|
||||
"title",
|
||||
]
|
||||
|
||||
form_columns = column_details_list.copy()
|
||||
form_columns.remove("semester_experiments")
|
||||
|
@ -597,6 +616,14 @@ def assistantQueryFactory():
|
|||
|
||||
|
||||
class SemesterExperimentView(SecureAdminModelView):
|
||||
class ProgramFilter(FilterEqual):
|
||||
def get_options(self, view):
|
||||
programs = Program.query
|
||||
return tuple((program.id, program.repr()) for program in programs)
|
||||
|
||||
def apply(self, query, value, alias=None):
|
||||
return query.filter(self.column.experiment.has(Experiment.program_id == int(value)))
|
||||
|
||||
class CreateForm(Form):
|
||||
def experimentQueryFactory():
|
||||
return Experiment.query.filter(Experiment.active == True)
|
||||
|
@ -640,7 +667,6 @@ class SemesterExperimentView(SecureAdminModelView):
|
|||
column_list = [
|
||||
"experiment",
|
||||
"assistants",
|
||||
"semester",
|
||||
]
|
||||
column_details_list = column_list + [
|
||||
"oral_weighting",
|
||||
|
@ -648,7 +674,11 @@ class SemesterExperimentView(SecureAdminModelView):
|
|||
"final_weighting",
|
||||
"group_experiments",
|
||||
]
|
||||
column_filters = ("experiment",)
|
||||
column_filters = (ProgramFilter(SemesterExperiment, "Program"),)
|
||||
column_searchable_list = [
|
||||
"experiment.number",
|
||||
"experiment.title",
|
||||
]
|
||||
|
||||
def queryFilter(self):
|
||||
return SemesterExperiment.semester == userActiveSemester()
|
||||
|
|
8
poetry.lock
generated
8
poetry.lock
generated
|
@ -146,7 +146,7 @@ Flask = "*"
|
|||
|
||||
[[package]]
|
||||
name = "flask-security-too"
|
||||
version = "4.1.2"
|
||||
version = "4.1.3"
|
||||
description = "Simple security for Flask apps."
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -164,7 +164,7 @@ passlib = ">=1.7.2"
|
|||
|
||||
[package.extras]
|
||||
babel = ["babel (>=2.7.0)", "flask-babel (>=2.0.0)"]
|
||||
common = ["bcrypt (>=3.1.5)", "flask-mail (>=0.9.1)"]
|
||||
common = ["bcrypt (>=3.1.5)", "flask-mail (>=0.9.1)", "bleach (>=3.3.1)"]
|
||||
fsqla = ["flask-sqlalchemy (>=2.4.4)", "sqlalchemy (>=1.3.6)", "sqlalchemy-utils (>=0.34.1)"]
|
||||
mfa = ["cryptography (>=3.0.0)", "pyqrcode (>=1.2)", "phonenumberslite (>=8.11.1)"]
|
||||
|
||||
|
@ -470,8 +470,8 @@ flask-principal = [
|
|||
{file = "Flask-Principal-0.4.0.tar.gz", hash = "sha256:f5d6134b5caebfdbb86f32d56d18ee44b080876a27269560a96ea35f75c99453"},
|
||||
]
|
||||
flask-security-too = [
|
||||
{file = "Flask-Security-Too-4.1.2.tar.gz", hash = "sha256:88c3d4cfa415ef4dd6f71052ef7a806a5079d8ee33d3e384d2fcd48d802d9a9b"},
|
||||
{file = "Flask_Security_Too-4.1.2-py2.py3-none-any.whl", hash = "sha256:ad33186feb9e03bf299e9bb6577c8425a38da0246e14e06fd4c28660a1acc099"},
|
||||
{file = "Flask-Security-Too-4.1.3.tar.gz", hash = "sha256:996d8d286789a72478462ee6f8a1371254a0dc4f8feea6f33534c2a3772c91cf"},
|
||||
{file = "Flask_Security_Too-4.1.3-py2.py3-none-any.whl", hash = "sha256:d417b5fccef96bad852944ffcfae9267baa2f353699ff4a6f77b4a8286a93d37"},
|
||||
]
|
||||
flask-sqlalchemy = [
|
||||
{file = "Flask-SQLAlchemy-2.5.1.tar.gz", hash = "sha256:2bda44b43e7cacb15d4e05ff3cc1f8bc97936cc464623424102bfc2c35e95912"},
|
||||
|
|
Loading…
Reference in a new issue