Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
SCODOC_R6A06
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Paul Milleville
SCODOC_R6A06
Commits
7ed521e4
Commit
7ed521e4
authored
2 years ago
by
IDK
Browse files
Options
Downloads
Patches
Plain Diff
WIP: nouveaux RCUEs
parent
0c9d202e
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
app/but/rcue.py
+27
-17
27 additions, 17 deletions
app/but/rcue.py
with
27 additions
and
17 deletions
app/but/rcue.py
+
27
−
17
View file @
7ed521e4
...
...
@@ -42,6 +42,8 @@ class RegroupementCoherentUE:
res_pair, res_impair: résultats des formsemestre de l
'
année en cours, ou None
cur_ues_pair, cur_ues_impair: ues auxquelles l
'
étudiant est inscrit cette année
"""
self
.
semestre_id_impair
=
semestre_id_impair
self
.
semestre_id_pair
=
semestre_id_impair
+
1
self
.
etud
:
Identite
=
etud
self
.
niveau
:
ApcNiveau
=
niveau
"
Le niveau de compétences de ce RCUE
"
...
...
@@ -59,7 +61,7 @@ class RegroupementCoherentUE:
ScolarFormSemestreValidation
.
query
.
filter_by
(
etudid
=
etud
.
id
,
formsemestre_id
=
res_pair
.
formsemestre
.
id
,
ue_id
=
self
.
ue_cur_pair
,
ue_id
=
self
.
ue_cur_pair
.
id
,
).
first
()
if
self
.
ue_cur_pair
else
None
...
...
@@ -68,27 +70,27 @@ class RegroupementCoherentUE:
ScolarFormSemestreValidation
.
query
.
filter_by
(
etudid
=
etud
.
id
,
formsemestre_id
=
res_impair
.
formsemestre
.
id
,
ue_id
=
self
.
ue_cur_impair
,
ue_id
=
self
.
ue_cur_impair
.
id
,
).
first
()
if
self
.
ue_cur_impair
else
None
)
# Autres validations pour l'UE paire
self
.
validation_ue_best_pair
=
_
best_autre_ue_validation
(
self
.
validation_ue_best_pair
=
best_autre_ue_validation
(
etud
.
id
,
niveau
.
id
,
semestre_id_impair
+
1
,
self
.
ue_cur_pair
.
id
if
self
.
ue_cur_pair
else
None
,
res_pair
.
formsemestre
.
id
if
(
res_pair
and
self
.
ue_cur_pair
)
else
None
,
)
self
.
validation_ue_best_impair
=
_
best_autre_ue_validation
(
self
.
validation_ue_best_impair
=
best_autre_ue_validation
(
etud
.
id
,
niveau
.
id
,
semestre_id_impair
,
self
.
ue_cur_impair
.
id
if
self
.
ue_cur_impair
else
None
,
res_impair
.
formsemestre
.
id
if
(
res_impair
and
self
.
ue_cur_impair
)
else
None
,
)
# Suis-je complet ?
# Suis-je complet ?
(= en cours ou validé sur les deux moitiés)
self
.
complete
=
(
self
.
ue_cur_pair
or
self
.
validation_ue_best_pair
)
and
(
self
.
ue_cur_impair
or
self
.
validation_ue_best_impair
)
...
...
@@ -96,21 +98,31 @@ class RegroupementCoherentUE:
self
.
moy_rcue
=
None
# Stocke les moyennes d'UE
self
.
res_impair
=
None
"
résultats formsemestre de l
'
UE si elle est courante, None sinon
"
self
.
ue_status_impair
=
None
if
self
.
ue_cur_impair
:
ue_status
=
res_impair
.
get_etud_ue_status
(
etud
.
id
,
self
.
ue_cur_impair
.
id
)
self
.
moy_ue_1
=
ue_status
[
"
moy
"
]
if
ue_status
else
None
# avec capitalisée
self
.
ue_1
=
self
.
ue_cur_impair
self
.
res_impair
=
res_impair
self
.
ue_status_impair
=
ue_status
elif
self
.
validation_ue_best_impair
:
self
.
moy_ue_1
=
self
.
validation_ue_best_pair
.
moy_ue
self
.
ue_1
=
self
.
ue_cur
_impair
self
.
moy_ue_1
=
self
.
validation_ue_best_
im
pair
.
moy_ue
self
.
ue_1
=
self
.
validation_ue_best
_impair
.
ue
else
:
self
.
moy_ue_1
,
self
.
ue_1
=
None
,
None
self
.
moy_ue_1_val
=
self
.
moy_ue_1
if
self
.
moy_ue_1
is
not
None
else
0.0
self
.
res_pair
=
None
"
résultats formsemestre de l
'
UE si elle est courante, None sinon
"
self
.
ue_status_pair
=
None
if
self
.
ue_cur_pair
:
ue_status
=
res_pair
.
get_etud_ue_status
(
etud
.
id
,
self
.
ue_cur_pair
.
id
)
self
.
moy_ue_2
=
ue_status
[
"
moy
"
]
if
ue_status
else
None
# avec capitalisée
self
.
ue_2
=
self
.
ue_cur_pair
self
.
res_pair
=
res_pair
self
.
ue_status_pair
=
ue_status
elif
self
.
validation_ue_best_pair
:
self
.
moy_ue_2
=
self
.
validation_ue_best_pair
.
moy_ue
self
.
ue_2
=
self
.
validation_ue_best_pair
.
ue
...
...
@@ -142,15 +154,13 @@ class RegroupementCoherentUE:
self
,
)
->
Query
:
# list[ApcValidationRCUE]
"""
Les validations de jury enregistrées pour ce RCUE
"""
niveau
=
self
.
ue_2
.
niveau_competence
return
(
ApcValidationRCUE
.
query
.
filter_by
(
etudid
=
self
.
etud
.
id
,
)
.
join
(
UniteEns
,
UniteEns
.
id
==
ApcValidationRCUE
.
ue2_id
)
.
join
(
ApcNiveau
,
UniteEns
.
niveau_competence_id
==
ApcNiveau
.
id
)
.
filter
(
ApcNiveau
.
id
==
niveau
.
id
)
.
filter
(
ApcNiveau
.
id
==
self
.
niveau
.
id
)
)
def
other_ue
(
self
,
ue
:
UniteEns
)
->
UniteEns
:
...
...
@@ -205,21 +215,21 @@ class RegroupementCoherentUE:
return
None
def
_
best_autre_ue_validation
(
etudid
:
int
,
niveau_id
:
int
,
semestre_id
:
int
,
u
e_id
:
int
def
best_autre_ue_validation
(
etudid
:
int
,
niveau_id
:
int
,
semestre_id
:
int
,
formsemestr
e_id
:
int
)
->
ScolarFormSemestreValidation
:
"""
La
"
meilleure
"
validation validante d
'
UE pour ce niveau/semestre
"""
validations
=
(
ScolarFormSemestreValidation
.
query
.
filter_by
(
etudid
=
etudid
)
.
join
(
UniteEns
)
.
filter_by
(
semestre_idx
=
semestre_id
+
1
)
.
filter_by
(
semestre_idx
=
semestre_id
)
.
join
(
ApcNiveau
)
.
filter
(
ApcNiveau
.
id
==
niveau_id
)
)
validations
=
[
v
for
v
in
validations
if
codes_cursus
.
code_ue_validant
(
v
.
code
)]
# Elimine l'UE en cours si elle existe
if
u
e_id
is
not
None
:
validations
=
[
v
for
v
in
validations
if
v
.
ue_id
!=
u
e_id
]
if
formsemestr
e_id
is
not
None
:
validations
=
[
v
for
v
in
validations
if
v
.
formsemestre_id
!=
formsemestr
e_id
]
validations
=
sorted
(
validations
,
key
=
lambda
v
:
BUT_CODES_ORDER
.
get
(
v
.
code
,
0
))
return
validations
[
-
1
]
if
validations
else
None
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment