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
58ecc524
Commit
58ecc524
authored
2 years ago
by
Emmanuel Viennet
Browse files
Options
Downloads
Patches
Plain Diff
Ajout colonne autorisations passage dans table recap jury
parent
c39c6221
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
app/comp/res_common.py
+23
-6
23 additions, 6 deletions
app/comp/res_common.py
app/comp/res_compat.py
+2
-2
2 additions, 2 deletions
app/comp/res_compat.py
app/tables/jury_recap.py
+12
-2
12 additions, 2 deletions
app/tables/jury_recap.py
app/tables/table_builder.py
+1
-5
1 addition, 5 deletions
app/tables/table_builder.py
with
38 additions
and
15 deletions
app/comp/res_common.py
+
23
−
6
View file @
58ecc524
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
"""
Résultats semestre: méthodes communes aux formations classiques et APC
"""
Résultats semestre: méthodes communes aux formations classiques et APC
"""
"""
from
collections
import
Counter
from
collections
import
Counter
,
defaultdict
from
collections.abc
import
Generator
from
collections.abc
import
Generator
from
functools
import
cached_property
from
functools
import
cached_property
import
numpy
as
np
import
numpy
as
np
...
@@ -22,11 +22,11 @@ from app.comp.moy_mod import ModuleImplResults
...
@@ -22,11 +22,11 @@ from app.comp.moy_mod import ModuleImplResults
from
app.models
import
FormSemestre
,
FormSemestreUECoef
from
app.models
import
FormSemestre
,
FormSemestreUECoef
from
app.models
import
Identite
from
app.models
import
Identite
from
app.models
import
ModuleImpl
,
ModuleImplInscription
from
app.models
import
ModuleImpl
,
ModuleImplInscription
from
app.models
import
ScolarAutorisationInscription
from
app.models.ues
import
UniteEns
from
app.models.ues
import
UniteEns
from
app.scodoc.sco_cache
import
ResultatsSemestreCache
from
app.scodoc.sco_cache
import
ResultatsSemestreCache
from
app.scodoc.sco_codes_parcours
import
UE_SPORT
from
app.scodoc.sco_codes_parcours
import
UE_SPORT
from
app.scodoc.sco_exceptions
import
ScoValueError
from
app.scodoc.sco_exceptions
import
ScoValueError
from
app.scodoc
import
sco_groups
from
app.scodoc
import
sco_utils
as
scu
from
app.scodoc
import
sco_utils
as
scu
# Il faut bien distinguer
# Il faut bien distinguer
...
@@ -84,6 +84,7 @@ class ResultatsSemestre(ResultatsCache):
...
@@ -84,6 +84,7 @@ class ResultatsSemestre(ResultatsCache):
"""
Coefs APC: rows = UEs (sans bonus), columns = modimpl, value = coef.
"""
"""
Coefs APC: rows = UEs (sans bonus), columns = modimpl, value = coef.
"""
self
.
validations
=
None
self
.
validations
=
None
self
.
autorisations_inscription
=
None
self
.
moyennes_matieres
=
{}
self
.
moyennes_matieres
=
{}
"""
Moyennes de matières, si calculées. { matiere_id : Series, index etudid }
"""
"""
Moyennes de matières, si calculées. { matiere_id : Series, index etudid }
"""
...
@@ -179,12 +180,28 @@ class ResultatsSemestre(ResultatsCache):
...
@@ -179,12 +180,28 @@ class ResultatsSemestre(ResultatsCache):
)
)
# --- JURY...
# --- JURY...
def
load
_validations
(
self
)
->
ValidationsSemestre
:
def
get_formsemestre
_validations
(
self
)
->
ValidationsSemestre
:
"""
Load validations, set attribute and return value
"""
"""
Load validations
if not already stored
, set attribute and return value
"""
if
not
self
.
validations
:
if
not
self
.
validations
:
self
.
validations
=
res_sem
.
load_formsemestre_validations
(
self
.
formsemestre
)
self
.
validations
=
res_sem
.
load_formsemestre_validations
(
self
.
formsemestre
)
return
self
.
validations
return
self
.
validations
def
get_autorisations_inscription
(
self
)
->
dict
[
int
:
list
[
int
]]:
"""
Les autorisations d
'
inscription venant de ce formsemestre.
Lit en base et cache le résultat.
Resultat: { etudid : [ indices de semestres ]}
Note: les etudids peuvent ne plus être inscrits ici.
Seuls ceux avec des autorisations enregistrées sont présents dans le résultat.
"""
if
not
self
.
autorisations_inscription
:
autorisations
=
ScolarAutorisationInscription
.
query
.
filter_by
(
origin_formsemestre_id
=
self
.
formsemestre
.
id
)
self
.
autorisations_inscription
=
defaultdict
(
list
)
for
aut
in
autorisations
:
self
.
autorisations_inscription
[
aut
.
etudid
].
append
(
aut
.
semestre_id
)
return
self
.
autorisations_inscription
def
get_etud_ue_validables
(
self
,
etudid
:
int
)
->
list
[
UniteEns
]:
def
get_etud_ue_validables
(
self
,
etudid
:
int
)
->
list
[
UniteEns
]:
"""
Liste des UEs du semestre qui doivent être validées
"""
Liste des UEs du semestre qui doivent être validées
...
@@ -242,8 +259,8 @@ class ResultatsSemestre(ResultatsCache):
...
@@ -242,8 +259,8 @@ class ResultatsSemestre(ResultatsCache):
UE capitalisées.
UE capitalisées.
"""
"""
# Supposant qu'il y a peu d'UE capitalisées,
# Supposant qu'il y a peu d'UE capitalisées,
# on recalcule les moyennes gen des etuds ayant des UE capitalisée.
# on recalcule les moyennes gen des etuds ayant des UE
s
capitalisée
s
.
self
.
load
_validations
()
self
.
get_formsemestre
_validations
()
ue_capitalisees
=
self
.
validations
.
ue_capitalisees
ue_capitalisees
=
self
.
validations
.
ue_capitalisees
for
etudid
in
ue_capitalisees
.
index
:
for
etudid
in
ue_capitalisees
.
index
:
recompute_mg
=
False
recompute_mg
=
False
...
...
This diff is collapsed.
Click to expand it.
app/comp/res_compat.py
+
2
−
2
View file @
58ecc524
...
@@ -282,7 +282,7 @@ class NotesTableCompat(ResultatsSemestre):
...
@@ -282,7 +282,7 @@ class NotesTableCompat(ResultatsSemestre):
if
self
.
get_etud_etat
(
etudid
)
==
DEF
:
if
self
.
get_etud_etat
(
etudid
)
==
DEF
:
return
{}
return
{}
else
:
else
:
validations
=
self
.
load
_validations
()
validations
=
self
.
get_formsemestre
_validations
()
return
validations
.
decisions_jury_ues
.
get
(
etudid
,
None
)
return
validations
.
decisions_jury_ues
.
get
(
etudid
,
None
)
def
get_etud_ects_valides
(
self
,
etudid
:
int
,
decisions_ues
:
dict
=
False
)
->
0
:
def
get_etud_ects_valides
(
self
,
etudid
:
int
,
decisions_ues
:
dict
=
False
)
->
0
:
...
@@ -309,7 +309,7 @@ class NotesTableCompat(ResultatsSemestre):
...
@@ -309,7 +309,7 @@ class NotesTableCompat(ResultatsSemestre):
"
compense_formsemestre_id
"
:
None
,
"
compense_formsemestre_id
"
:
None
,
}
}
else
:
else
:
validations
=
self
.
load
_validations
()
validations
=
self
.
get_formsemestre
_validations
()
return
validations
.
decisions_jury
.
get
(
etudid
,
None
)
return
validations
.
decisions_jury
.
get
(
etudid
,
None
)
def
get_etud_mat_moy
(
self
,
matiere_id
:
int
,
etudid
:
int
)
->
str
:
def
get_etud_mat_moy
(
self
,
matiere_id
:
int
,
etudid
:
int
)
->
str
:
...
...
This diff is collapsed.
Click to expand it.
app/tables/jury_recap.py
+
12
−
2
View file @
58ecc524
...
@@ -88,7 +88,7 @@ class TableJury(TableRecap):
...
@@ -88,7 +88,7 @@ class TableJury(TableRecap):
que pour les formations classiques, ce code n
'
est pas utilisé en BUT.
que pour les formations classiques, ce code n
'
est pas utilisé en BUT.
"""
"""
res
=
self
.
res
res
=
self
.
res
autorisations
=
res
.
get_autorisations_inscription
()
for
row
in
self
.
rows
:
for
row
in
self
.
rows
:
etud
=
row
.
etud
etud
=
row
.
etud
if
not
res
.
is_apc
:
if
not
res
.
is_apc
:
...
@@ -108,7 +108,17 @@ class TableJury(TableRecap):
...
@@ -108,7 +108,17 @@ class TableJury(TableRecap):
self
.
foot_title_row
.
cells
[
"
jury_code_sem
"
].
target_attrs
[
self
.
foot_title_row
.
cells
[
"
jury_code_sem
"
].
target_attrs
[
"
title
"
"
title
"
]
=
"""
Code jury sur le semestre
"""
]
=
"""
Code jury sur le semestre
"""
# Autorisations inscription
row
.
add_cell
(
"
autorisations_inscription
"
,
"
Passage
"
,
"
,
"
.
join
(
"
S
"
+
str
(
i
)
for
i
in
sorted
(
autorisations
[
etud
.
id
]))
if
etud
.
id
in
autorisations
else
""
,
group
=
"
jury_code_sem
"
,
classes
=
[
"
recorded_code
"
],
)
# Lien saisie ou visu jury
a_saisir
=
(
not
res
.
validations
)
or
(
not
res
.
validations
.
has_decision
(
etud
))
a_saisir
=
(
not
res
.
validations
)
or
(
not
res
.
validations
.
has_decision
(
etud
))
row
.
add_cell
(
row
.
add_cell
(
"
jury_link
"
,
"
jury_link
"
,
...
...
This diff is collapsed.
Click to expand it.
app/tables/table_builder.py
+
1
−
5
View file @
58ecc524
...
@@ -365,11 +365,7 @@ class Row(Element):
...
@@ -365,11 +365,7 @@ class Row(Element):
group: groupe de colonnes
group: groupe de colonnes
classes is a list of css class names
classes is a list of css class names
"""
"""
if
(
classes
is
None
)
or
(
group
not
in
classes
):
classes
=
classes
.
copy
()
if
classes
else
[]
# ajoute le nom de groupe aux classes
classes
=
[
group
or
""
]
+
(
classes
or
[])
else
:
classes
=
classes
.
copy
()
if
group
:
if
group
:
self
.
table
.
column_classes
[
col_id
].
add
(
group
)
self
.
table
.
column_classes
[
col_id
].
add
(
group
)
if
column_classes
:
if
column_classes
:
...
...
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