Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
scodoc_issue_976
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
Louis Dormael
scodoc_issue_976
Commits
3c36acd1
Commit
3c36acd1
authored
3 years ago
by
Emmanuel Viennet
Browse files
Options
Downloads
Patches
Plain Diff
Bonus grenoble 2020 (à compléter pour l'ancien)
parent
4222ea81
No related branches found
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
app/comp/bonus_spo.py
+65
-2
65 additions, 2 deletions
app/comp/bonus_spo.py
app/comp/res_but.py
+2
-0
2 additions, 0 deletions
app/comp/res_but.py
app/comp/res_classic.py
+2
-0
2 additions, 0 deletions
app/comp/res_classic.py
with
69 additions
and
2 deletions
app/comp/bonus_spo.py
+
65
−
2
View file @
3c36acd1
...
...
@@ -49,6 +49,10 @@ class BonusSport:
- modimpl_coefs: les coefs des modules
En classique: 1d ndarray de float (modimpl)
En APC: 2d ndarray de float, (modimpl x UE) <= attention à transposer
- etud_moy_gen: Series, index etudid, valeur float (moyenne générale avant bonus)
- etud_moy_ue: DataFrame columns UE (sans sport), rows etudid (moyennes avant bonus)
etud_moy_gen et etud_moy_ue ne sont PAS modifiés (mais utilisés par certains bonus non additifs).
"""
# Si vrai, en APC, si le bonus UE est None, reporte le bonus moy gen:
...
...
@@ -67,9 +71,13 @@ class BonusSport:
ues
:
list
,
modimpl_inscr_df
:
pd
.
DataFrame
,
modimpl_coefs
:
np
.
array
,
etud_moy_gen
,
etud_moy_ue
,
):
self
.
formsemestre
=
formsemestre
self
.
ues
=
ues
self
.
etud_moy_gen
=
etud_moy_gen
self
.
etud_moy_ue
=
etud_moy_ue
self
.
etuds_idx
=
modimpl_inscr_df
.
index
# les étudiants inscrits au semestre
self
.
bonus_ues
:
pd
.
DataFrame
=
None
# virtual
self
.
bonus_moy_gen
:
pd
.
Series
=
None
# virtual
...
...
@@ -293,7 +301,7 @@ class BonusTours(BonusDirect):
# ---- Un peu moins simples (mais pas trop compliqué)
# Bonus simple, mais avec chagement de paramètres en 2010 !
# Bonus simple, mais avec cha
n
gement de paramètres en 2010 !
class
BonusLille
(
BonusSportSimples
):
"""
Calcul bonus modules optionels (sport, culture), règle IUT Villeneuve d
'
Ascq
...
...
@@ -320,8 +328,63 @@ class BonusLille(BonusSportSimples):
)
def
bonus_iut1grenoble_2017
(
notes_sport
,
coefs
,
infos
=
None
):
"""
Calcul bonus sport IUT Grenoble sur la moyenne générale (version 2017)
La note de sport de nos étudiants va de 0 à 5 points.
Chaque point correspond à un % qui augmente la moyenne de chaque UE et la moyenne générale.
Par exemple : note de sport 2/5 : la moyenne générale sera augmentée de 2%.
Calcul ici du bonus sur moyenne générale
"""
# les coefs sont ignorés
# notes de 0 à 5
points
=
sum
([
x
for
x
in
notes_sport
])
factor
=
(
points
/
4.0
)
/
100.0
bonus
=
infos
[
"
moy
"
]
*
factor
return
bonus
class
BonusGrenobleIUT1
(
BonusSport
):
"""
La note de sport est sur 20, et on calcule une bonification (en %)
qui va s
'
appliquer à la moyenne de chaque UE du semestre en appliquant
la formule : bonification (en %) = (note-10)*0,5.
Bonification qui ne s
'
applique que si la note est >10.
(Une note de 10 donne donc 0% de bonif ; note de 20 : 5% de bonif)
"""
name
=
"
bonus_grenoble_iut1_2020
"
# C'est un bonus "multiplicatif": on l'exprime en additif,
# sur chaque moyenne d'UE m_0
# m_1 = a . m_0
# m_1 = m_0 + bonus
# bonus = m_0 (a - 1)
def
compute_bonus
(
self
,
sem_modimpl_moys_inscrits
,
modimpl_coefs_etuds_no_nan
):
"""
calcul du bonus
"""
# Calcule moyenne pondérée des notes de sport:
notes
=
np
.
sum
(
sem_modimpl_moys_inscrits
*
modimpl_coefs_etuds_no_nan
,
axis
=
1
)
/
np
.
sum
(
modimpl_coefs_etuds_no_nan
,
axis
=
1
)
notes
=
np
.
nan_to_num
(
notes
,
copy
=
False
)
a
=
(
notes
-
10.0
)
*
0.005
a
[
a
<=
0
]
=
1.0
# note < 10, pas de bonus
if
self
.
formsemestre
.
formation
.
is_apc
():
# ne s'applique qu'aux moyennes d'UE
b
=
self
.
etud_moy_ue
*
(
a
-
1
)
self
.
bonus_ues
=
b
# DataFrame
else
:
# ne s'applique qu'à la moyenne générale
b
=
self
.
etud_moy_gen
*
(
a
-
1
)
self
.
bonus_moy_gen
=
b
class
BonusVilleAvray
(
BonusSport
):
"""
Calcul b
onus modules optionels (sport, culture), règle IUT Ville d
'
Avray
"""
B
onus modules optionels (sport, culture), règle IUT Ville d
'
Avray
.
Les étudiants de l
'
IUT peuvent suivre des enseignements optionnels
de l
'
Université Paris 10 (C2I) non rattachés à une unité d
'
enseignement.
...
...
This diff is collapsed.
Click to expand it.
app/comp/res_but.py
+
2
−
0
View file @
3c36acd1
...
...
@@ -73,6 +73,8 @@ class ResultatsSemestreBUT(NotesTableCompat):
self
.
ues
,
self
.
modimpl_inscr_df
,
self
.
modimpl_coefs_df
.
transpose
(),
self
.
etud_moy_gen
,
self
.
etud_moy_ue
,
)
self
.
bonus_ues
=
bonus
.
get_bonus_ues
()
if
self
.
bonus_ues
is
not
None
:
...
...
This diff is collapsed.
Click to expand it.
app/comp/res_classic.py
+
2
−
0
View file @
3c36acd1
...
...
@@ -80,6 +80,8 @@ class ResultatsSemestreClassic(NotesTableCompat):
self
.
ues
,
self
.
modimpl_inscr_df
,
self
.
modimpl_coefs
,
self
.
etud_moy_gen
,
self
.
etud_moy_ue
,
)
self
.
bonus_ues
=
bonus
.
get_bonus_ues
()
if
self
.
bonus_ues
is
not
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