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
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Paul Milleville
SCODOC_R6A06
Commits
ebe7dd8f
Commit
ebe7dd8f
authored
1 year ago
by
Emmanuel Viennet
Browse files
Options
Downloads
Patches
Plain Diff
WIP: jury BUT: reprise UEs antérieures
parent
5d30b923
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
app/but/jury_but.py
+29
-15
29 additions, 15 deletions
app/but/jury_but.py
app/but/jury_but_view.py
+30
-2
30 additions, 2 deletions
app/but/jury_but_view.py
with
59 additions
and
17 deletions
app/but/jury_but.py
+
29
−
15
View file @
ebe7dd8f
...
@@ -1009,7 +1009,7 @@ class DecisionsProposeesRCUE(DecisionsProposees):
...
@@ -1009,7 +1009,7 @@ class DecisionsProposeesRCUE(DecisionsProposees):
sco_codes
.
DEM
if
inscription_etat
==
scu
.
DEMISSION
else
sco_codes
.
DEF
sco_codes
.
DEM
if
inscription_etat
==
scu
.
DEMISSION
else
sco_codes
.
DEF
]
]
return
return
self
.
validation
=
rcue
.
query_validations
().
first
()
self
.
validation
:
ApcValidationRCUE
=
rcue
.
query_validations
().
first
()
if
self
.
validation
is
not
None
:
if
self
.
validation
is
not
None
:
self
.
code_valide
=
self
.
validation
.
code
self
.
code_valide
=
self
.
validation
.
code
if
rcue
.
est_compensable
():
if
rcue
.
est_compensable
():
...
@@ -1379,30 +1379,36 @@ class DecisionsProposeesUE(DecisionsProposees):
...
@@ -1379,30 +1379,36 @@ class DecisionsProposeesUE(DecisionsProposees):
inscription_etat
:
str
=
scu
.
INSCRIT
,
inscription_etat
:
str
=
scu
.
INSCRIT
,
):
):
self
.
paire
=
paire
self
.
paire
=
paire
self
.
formsemestre
=
formsemestre
"
Le formsemestre courant auquel appartient l
'
UE, ou None si validation antérieure
"
self
.
rcue
:
RegroupementCoherentUE
=
rcue
"
Le rcue auquel est rattaché cette UE, ou None
"
self
.
ue
:
UniteEns
=
rcue
.
ue_2
if
paire
else
rcue
.
ue_1
self
.
ue
:
UniteEns
=
rcue
.
ue_2
if
paire
else
rcue
.
ue_1
self
.
inscription_etat
=
inscription_etat
self
.
inscription_etat
=
inscription_etat
# Une UE peut être validée plusieurs fois en cas de redoublement
# Une UE peut être validée plusieurs fois en cas de redoublement
# (qu'elle soit capitalisée ou non)
# (qu'elle soit capitalisée ou non)
# mais ici on a restreint au formsemestre donc une seule (prend la première)
# mais ici on a restreint au formsemestre donc une seule (prend la première)
validation
=
ScolarFormSemestreValidation
.
query
.
filter_by
(
etudid
=
etud
.
id
,
formsemestre_id
=
formsemestre
.
id
,
ue_id
=
self
.
ue
.
id
<<
XXX
self
.
cur_validation
=
(
).
first
()
rcue
.
validation_ue_cur_pair
if
paire
else
rcue
.
validation_ue_cur_impair
)
"
validation dans le formsemestre courant
"
autre_validation
=
(
rcue
.
validation_ue_best_pair
if
paire
else
rcue
.
validation_ue_best_impair
)
"
validation antérieure ou capitalisée
"
# la validation à afficher est celle "en cours", sauf si UE antérieure
validation
=
self
.
cur_validation
if
self
.
formsemestre
else
autre_validation
super
().
__init__
(
super
().
__init__
(
etud
=
etud
,
etud
=
etud
,
code_valide
=
validation
.
code
if
validation
is
not
None
else
None
,
code_valide
=
validation
.
code
if
validation
is
not
None
else
None
,
)
)
self
.
validation
=
validation
self
.
validation
=
validation
"
validation dans le formsemestre courant
"
"
validation dans le formsemestre courant ou à défaut celle enregistrée
"
self
.
formsemestre
=
formsemestre
self
.
rcue
:
RegroupementCoherentUE
=
rcue
"
Le rcue auquel est rattaché cette UE, ou None
"
# Editable ou pas ?
# Editable ou pas ?
# si ue courante, éditable.
# si ue courante, éditable.
self
.
editable
=
(
self
.
editable
=
self
.
cur_validation
is
not
None
(
self
.
rcue
.
ue_cur_pair
is
not
None
)
if
paire
else
(
self
.
rcue
.
ue_cur_impair
is
not
None
)
)
res
:
ResultatsSemestreBUT
=
(
res
:
ResultatsSemestreBUT
=
(
self
.
rcue
.
res_pair
if
paire
else
self
.
rcue
.
res_impair
self
.
rcue
.
res_pair
if
paire
else
self
.
rcue
.
res_impair
)
)
...
@@ -1427,8 +1433,9 @@ class DecisionsProposeesUE(DecisionsProposees):
...
@@ -1427,8 +1433,9 @@ class DecisionsProposeesUE(DecisionsProposees):
# Moyenne de l'UE ?
# Moyenne de l'UE ?
ue_status
=
self
.
rcue
.
ue_status_pair
if
paire
else
self
.
rcue
.
ue_status_impair
ue_status
=
self
.
rcue
.
ue_status_pair
if
paire
else
self
.
rcue
.
ue_status_impair
self
.
moy_ue
=
ue_status
[
"
cur_moy_ue
"
]
if
ue_status
:
self
.
moy_ue_with_cap
=
ue_status
[
"
moy
"
]
self
.
moy_ue
=
ue_status
[
"
cur_moy_ue
"
]
self
.
moy_ue_with_cap
=
ue_status
[
"
moy
"
]
self
.
ue_status
=
ue_status
self
.
ue_status
=
ue_status
self
.
codes
=
[
self
.
codes
[
0
]]
+
sorted
(
self
.
codes
[
1
:])
self
.
codes
=
[
self
.
codes
[
0
]]
+
sorted
(
self
.
codes
[
1
:])
...
@@ -1440,6 +1447,11 @@ class DecisionsProposeesUE(DecisionsProposees):
...
@@ -1440,6 +1447,11 @@ class DecisionsProposeesUE(DecisionsProposees):
"""
Calcul des .codes attribuables et de l
'
explanation associée
"""
"""
Calcul des .codes attribuables et de l
'
explanation associée
"""
if
self
.
inscription_etat
!=
scu
.
INSCRIT
:
if
self
.
inscription_etat
!=
scu
.
INSCRIT
:
return
return
# Si UE validée antérieure, on ne peut pas changer le code
if
not
self
.
formsemestre
:
self
.
codes
=
[
self
.
validation
.
code
]
if
self
.
validation
else
[]
self
.
explanation
=
"
enregistrée
"
return
if
(
if
(
self
.
moy_ue
>
(
sco_codes
.
CursusBUT
.
BARRE_MOY
-
sco_codes
.
NOTES_TOLERANCE
)
self
.
moy_ue
>
(
sco_codes
.
CursusBUT
.
BARRE_MOY
-
sco_codes
.
NOTES_TOLERANCE
)
)
or
self
.
formsemestre
.
modalite
==
"
EXT
"
:
)
or
self
.
formsemestre
.
modalite
==
"
EXT
"
:
...
@@ -1499,6 +1511,8 @@ class DecisionsProposeesUE(DecisionsProposees):
...
@@ -1499,6 +1511,8 @@ class DecisionsProposeesUE(DecisionsProposees):
def
erase
(
self
):
def
erase
(
self
):
"""
Efface la décision de jury de cet étudiant pour cette UE
"""
"""
Efface la décision de jury de cet étudiant pour cette UE
"""
# par prudence, on requete toutes les validations, en cas de doublons
# par prudence, on requete toutes les validations, en cas de doublons
if
not
self
.
formsemestre
:
return
# antérieure, rien à effacer
validations
=
ScolarFormSemestreValidation
.
query
.
filter_by
(
validations
=
ScolarFormSemestreValidation
.
query
.
filter_by
(
etudid
=
self
.
etud
.
id
,
formsemestre_id
=
self
.
formsemestre
.
id
,
ue_id
=
self
.
ue
.
id
etudid
=
self
.
etud
.
id
,
formsemestre_id
=
self
.
formsemestre
.
id
,
ue_id
=
self
.
ue
.
id
)
)
...
...
This diff is collapsed.
Click to expand it.
app/but/jury_but_view.py
+
30
−
2
View file @
ebe7dd8f
...
@@ -199,12 +199,40 @@ def _gen_but_niveau_ue(
...
@@ -199,12 +199,40 @@ def _gen_but_niveau_ue(
</div>
</div>
</div>
</div>
"""
"""
elif
dec_ue
.
formsemestre
is
None
:
# Validation d'UE antérieure (semestre hors année scolaire courante)
if
dec_ue
.
validation
:
moy_ue_str
=
f
"""
<span>
{
scu
.
fmt_note
(
dec_ue
.
validation
.
moy_ue
)
}
</span>
"""
scoplement
=
f
"""
<div class=
"
scoplement
"
>
<div>
<b>UE
{
ue
.
acronyme
}
antérieure </b>
<span>validée
{
dec_ue
.
validation
.
code
}
le
{
dec_ue
.
validation
.
event_date
.
strftime
(
"
%d/%m/%Y
"
)
}
</span>
</div>
<div>Non reprise dans l
'
année en cours</div>
</div>
"""
else
:
moy_ue_str
=
"""
<span>-</span>
"""
scoplement
=
"""
<div class=
"
scoplement
"
>
<div>
<b>Pas d
'
UE en cours ou validée dans cette compétence de ce côté.</b>
</div>
</div>
"""
else
:
else
:
moy_ue_str
=
f
"""
<span>
{
scu
.
fmt_note
(
dec_ue
.
moy_ue
)
}
</span>
"""
moy_ue_str
=
f
"""
<span>
{
scu
.
fmt_note
(
dec_ue
.
moy_ue
)
}
</span>
"""
if
dec_ue
.
code_valide
:
if
dec_ue
.
code_valide
:
scoplement
=
f
"""
<div class=
"
scoplement
"
>
date_str
=
(
<div>Code
{
dec_ue
.
code_valide
}
enregistré le
{
dec_ue
.
validation
.
event_date
.
strftime
(
"
%d/%m/%Y
"
)
}
f
"""
enregistré le
{
dec_ue
.
validation
.
event_date
.
strftime
(
"
%d/%m/%Y
"
)
}
à
{
dec_ue
.
validation
.
event_date
.
strftime
(
"
%Hh%M
"
)
}
à
{
dec_ue
.
validation
.
event_date
.
strftime
(
"
%Hh%M
"
)
}
"""
if
dec_ue
.
validation
and
dec_ue
.
validation
.
event_date
else
""
)
scoplement
=
f
"""
<div class=
"
scoplement
"
>
<div>Code
{
dec_ue
.
code_valide
}
{
date_str
}
</div>
</div>
</div>
</div>
"""
"""
...
...
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