-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Errore 500 inserimento valutazione menu a tendina #774
Comments
potresti fornire il codice così da applicarlo ? |
Anzi tutto fai attenzione a non modificare direttamente il file templates/lezioni/voti_classe_edit.html.twig ma la sua copia in PERSONAL/templates/lezioni/voti_classe_edit.html.twig. Altrimenti ogni volta che fai un aggiornamento rischi di perdere le tue modifiche, sovrascritte dai file dell'aggiornamento. L'errore dice che stai inviando una stringa di testo, mentre il PHP si aspetta un numero decimale (float). Puoi risolvere se crei un menu a tendina dove il testo mostrato è appunto una stringa (tipo "6+") mentre il valore è il numero corrispondente. |
purtroppo non ho capito molto
Il giorno gio 31 ott 2024 alle ore 21:12 Antonello Dessì <
***@***.***> ha scritto:
… Anzi tutto fai attenzione a non modificare direttamente il file
*templates/lezioni/voti_classe_edit.html.twig* ma la sua copia in
*PERSONAL/templates/lezioni/voti_classe_edit.html.twig*. Altrimenti ogni
volta che fai un aggiornamento rischi di perdere le tue modifiche,
sovrascritte dai file dell'aggiornamento.
L'errore dice che stai inviando una stringa di testo, mentre il PHP si
aspetta un numero decimale (float). Puoi risolvere se crei un menu a
tendina dove il testo mostrato è appunto una stringa (tipo "6+") mentre il
valore è il numero corrispondente.
Per intenderci, il codice HTML della singola opzione è del tipo:
* 6+ *
—
Reply to this email directly, view it on GitHub
<#774 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AWL2BFOKNP25UEUUUZKGKO3Z6KFLJAVCNFSM6AAAAABQ6DNLPOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJQG4ZTCNJYG4>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
Guarda potresti usare questo codice:
Naturalmente il codice in questione ti permette l'inserimento dei voti interi e decimali. L'unica limitazione è che riconosce solo 0,25 - 0,50 - 0,75 |
Nel codice che hai riportato, nella parte seguente ...
Bisogna correggere in questo modo...
Anche la soluzione proposta da @manuelbarberi è valida. |
This comment was marked as resolved.
This comment was marked as resolved.
{% extends 'lezioni/index.html.twig' %}
{% form_theme form _self %}
{% block pagina_contenuto %}
<div class="container-fluid">
<div class="panel panel-primary gs-mt-4">
<div class="panel-heading">
<div class="panel-title">{{ form_title|trans }}</div>
</div>
<div class="panel-body">
<div class="row bg-success">
<div class="col-sm-2 text-right"><strong
class="gs-big">Classe:</strong></div>
<div class="col-sm-4"><span class="gs-big">{{ label.classe
}}</span></div>
</div>
<div class="row bg-success gs-mb-3">
<div class="col-sm-2 text-right"><strong
class="gs-big">Materia:</strong></div>
<div class="col-sm-4"><span class="gs-big">{{ label.materia
}}</span></div>
<div class="col-sm-2 text-right"><strong
class="gs-big">Valutazione:</strong></div>
<div class="col-sm-4"><span class="gs-big">{{ label.tipo|trans
}}</span></div>
</div>
{% if app.session.get('/APP/ROUTE/lezioni_voti_classe/conferma') != 0
%}
<div class="alert alert-warning" role="alert">
<div class="text-center">
<strong class="gs-big">
{{ 'message.alunni_assenti_in_data'|trans }}<br>
{% for a in assenti %}{{ a.cognome }} {{ a.nome }} ({{
a.dataNascita|date('d/m/Y') }}){{ not loop.last ? ', ' }}{% endfor %}.<br>
<em>{{ 'message.modifica_data_o_conferma'|trans }}</em>
</strong>
</div>
</div>
{% endif %}
{{ form_start(form) }}
{{ form_errors(form) }}
{# Data e Argomento #}
{{ form_row(form.data) }}
{{ form_row(form.argomento) }}
{# Opzioni globali #}
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">Opzioni per tutti i voti</h4>
</div>
<div class="panel-body">
<div class="row options-container">
<div class="col-sm-6">
<div class="option-group">
<label class="control-label">Voti visibili ai
genitori</label>
<div class="toggle-switch-container">
<label class="switch">
<input type="checkbox" name="voti_classe[visibile]"
value="1" {% if form.visibile.vars.value %}checked{% endif %}>
<span class="slider"></span>
</label>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="option-group">
<label class="control-label">Utilizza nel calcolo delle
medie?</label>
<div class="toggle-switch-container">
<label class="switch">
<input type="checkbox" id="media_global" checked>
<span class="slider"></span>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
{# Lista alunni #}
<ul id="gs-form-collection" class="list-group">
{% for alu in form.lista %}
<li class="list-group-item">
<div class="row">
<div class="col-sm-3">
<strong>{{ alu.alunno.vars.value }}</strong>
</div>
{{ form_widget(alu) }}
</div>
</li>
{% endfor %}
</ul>
{{ form_end(form) }}
</div>
</div>
</div>
{% endblock %}
{% block pagina_css %}
{{ parent() }}
<link href="{{
asset('vendor/bootstrap-datepicker/css/bootstrap-datepicker3.min.css') }}"
rel="stylesheet">
<style>
.gs-big { font-size: 1.2em; }
.gs-mt-4 { margin-top: 1.5rem; }
.gs-mb-3 { margin-bottom: 1rem; }
.gs-mr-1 { margin-right: 0.25rem; }
/* Stili per il layout delle opzioni */
.options-container {
display: flex;
align-items: center;
justify-content: center;
}
.option-group {
display: flex;
align-items: center;
gap: 15px;
padding: 10px;
}
.option-group .control-label {
margin: 0;
white-space: nowrap;
font-weight: bold;
}
.toggle-switch-container {
display: flex;
align-items: center;
}
/* Switch Toggle Button */
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 34px;
margin: 0;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to right, #dc3545 50%, #28a745 50%);
-webkit-transition: .4s;
transition: .4s;
border-radius: 34px;
}
.slider:before {
position: absolute;
content: "";
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
border-radius: 50%;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Etichette per gli switch */
.switch:after {
content: 'NO';
position: absolute;
left: 8px;
top: 8px;
color: white;
font-size: 12px;
}
.switch:before {
content: 'SI';
position: absolute;
right: 8px;
top: 8px;
color: white;
font-size: 12px;
z-index: 1;
}
/* Stili per i voti */
.voto-select {
width: auto !important;
display: inline-block !important;
margin-right: 10px;
}
</style>
{% endblock %}
{% block pagina_js_fine %}
{{ parent() }}
<script src="{{
asset('vendor/bootstrap-datepicker/js/bootstrap-datepicker.min.js')
}}"></script>
<script src="{{
asset('vendor/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js')
}}"></script>
<script>
$(document).ready(function() {
// Inizializzazione datepicker
$('.input-group.date').datepicker({
format: "dd/mm/yyyy",
weekStart: 1,
maxViewMode: 1,
daysOfWeekDisabled: "0",
startDate: "{{ label.inizio }}",
endDate: "{{ date()|date('d/m/Y') }}",
datesDisabled: {{ label.festivi|raw }},
todayBtn: "linked",
todayHighlight: true,
autoclose: true,
language: "it",
zIndexOffset: 1200
});
// Gestione del voto
$('select[name$="[voto]"]').on('change', function() {
var selectValue = $(this).val();
var value = selectValue ? parseFloat(selectValue) : 0;
var label = $(this).siblings('span.label');
if (value > 0) {
var labelClass = value >= 6 ? 'label-success' : (value < 5 ?
'label-danger' : 'label-warning');
label.removeClass('label-default label-success label-danger
label-warning')
.addClass(labelClass)
.text(value.toFixed(2)); // Assicura 2 decimali
} else {
label.removeClass('label-success label-danger label-warning')
.addClass('label-default')
.text('--');
}
});
// Gestione dello switch per la media
$('#media_global').change(function() {
var includeInMedia = $(this).prop('checked');
$('input[name$="[media]"]').each(function() {
$(this).prop('checked', includeInMedia);
});
});
// Imposta stato iniziale della media globale basato sul primo alunno
var firstMediaValue = $('input[name$="[media]"]:first').prop('checked');
$('#media_global').prop('checked', firstMediaValue);
// Gestione dello switch per la visibilità
$('input[name="voti_classe[visibile]"]').change(function() {
var isVisible = $(this).prop('checked');
$('input[name$="[visibile]"]').prop('checked', isVisible);
});
});
</script>
{% endblock %}
{% block _voti_classe_lista_entry_widget %}
<div class="col-sm-9">
<div class="row">
<label class="control-label col-sm-2" for="{{ form.voto.vars.id
}}">Voto</label>
<div class="col-sm-10">
<select id="{{ form.voto.vars.id }}" name="{{
form.voto.vars.full_name }}" class="form-control voto-select">
<option value="">--</option>
<option value="1.00" {% if form.voto.vars.value == 1 %}selected{%
endif %}>1</option>
<option value="2.00" {% if form.voto.vars.value == 2 %}selected{%
endif %}>2</option>
<option value="3.00" {% if form.voto.vars.value == 3 %}selected{%
endif %}>3</option>
<option value="4.00" {% if form.voto.vars.value == 4 %}selected{%
endif %}>4</option>
<option value="4.25" {% if form.voto.vars.value == 4.25
%}selected{% endif %}>4+</option>
<option value="4.50" {% if form.voto.vars.value == 4.5 %}selected{%
endif %}>4½</option>
<option value="4.75" {% if form.voto.vars.value == 4.75
%}selected{% endif %}>5-</option>
<option value="5.00" {% if form.voto.vars.value == 5 %}selected{%
endif %}>5</option>
<option value="5.25" {% if form.voto.vars.value == 5.25
%}selected{% endif %}>5+</option>
<option value="5.50" {% if form.voto.vars.value == 5.5 %}selected{%
endif %}>5½</option>
<option value="5.75" {% if form.voto.vars.value == 5.75
%}selected{% endif %}>6-</option>
<option value="6.00" {% if form.voto.vars.value == 6 %}selected{%
endif %}>6</option>
<option value="6.25" {% if form.voto.vars.value == 6.25
%}selected{% endif %}>6+</option>
<option value="6.50" {% if form.voto.vars.value == 6.5 %}selected{%
endif %}>6½</option>
<option value="6.75" {% if form.voto.vars.value == 6.75
%}selected{% endif %}>7-</option>
<option value="7.00" {% if form.voto.vars.value == 7 %}selected{%
endif %}>7</option>
<option value="7.25" {% if form.voto.vars.value == 7.25
%}selected{% endif %}>7+</option>
<option value="7.50" {% if form.voto.vars.value == 7.5 %}selected{%
endif %}>7½</option>
<option value="7.75" {% if form.voto.vars.value == 7.75
%}selected{% endif %}>8-</option>
<option value="8.00" {% if form.voto.vars.value == 8 %}selected{%
endif %}>8</option>
<option value="8.25" {% if form.voto.vars.value == 8.25
%}selected{% endif %}>8+</option>
<option value="8.50" {% if form.voto.vars.value == 8.5 %}selected{%
endif %}>8½</option>
<option value="8.75" {% if form.voto.vars.value == 8.75
%}selected{% endif %}>9-</option>
<option value="9.00" {% if form.voto.vars.value == 9 %}selected{%
endif %}>9</option>
<option value="9.25" {% if form.voto.vars.value == 9.25
%}selected{% endif %}>9+</option>
<option value="9.50" {% if form.voto.vars.value == 9.5 %}selected{%
endif %}>9½</option>
<option value="9.75" {% if form.voto.vars.value == 9.75
%}selected{% endif %}>10-</option>
<option value="10.00" {% if form.voto.vars.value == 10 %}selected{%
endif %}>10</option>
</select>
<span class="label gs-big gs-mr-1 {{ form.voto.vars.value > 0 ?
(form.voto.vars.value >= 6 ? 'label-success' :
(form.voto.vars.value < 5 ? 'label-danger' : 'label-warning')) :
'label-default' }}"
style="display:inline-block;min-width:3em;padding:0.6em 0.2em;">
{{- form.voto.vars.value > 0 ?
form.voto.vars.value|number_format(2, '.', '') : '--' -}}
</span>
</div>
</div>
<div class="row">
<label class="control-label col-sm-2" for="{{ form.giudizio.vars.id
}}">Giudizio</label>
<div class="col-sm-10">
{{ form_widget(form.giudizio) }}
</div>
</div>
<div style="display:none">
{{ form_widget(form.media) }}
{{ form_widget(form.id) }}
{{ form_widget(form.alunno) }}
</div>
</div>
{% endblock %}
Il giorno ven 1 nov 2024 alle ore 17:24 Antonello Dessì <
***@***.***> ha scritto:
… purtroppo non ho capito molto
Nel codice che hai riportato, nella parte seguente ...
{% for i in 1..10 %}
<option value="{{ i }}">{{ i }}</option>
{% if i < 10 %}
<option value="{{ i }}+">{{ i }}+</option>
<option value="{{ i }}½">{{ i }}½</option>
<option value="{{ i+1 }}-">{{ i+1 }}-</option>
{% endif %}
{% endfor %}
Bisogna correggere in questo modo...
{% for i in 1..10 %}
<option value="{{ i }}">{{ i }}</option>
{% if i < 10 %}
<option value="{{ i + 0.25 }}">{{ i }}+</option>
<option value="{{ i + 0.5 }}½">{{ i }}½</option>
<option value="{{ i + 0.75 }}-">{{ i+1 }}-</option>
{% endif %}
{% endfor %}
Anche la soluzione proposta da @manuelbarberi
<https://github.com/manuelbarberi> è valida.
—
Reply to this email directly, view it on GitHub
<#774 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AWL2BFIWK56RFLE7PXTZRALZ6OTNLAVCNFSM6AAAAABQ6DNLPOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJSGE3DQMBRGU>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
cosa ve ne pare del codice inoltrato?
Il giorno ven 1 nov 2024 alle ore 21:30 Luigi Semplicini <
***@***.***> ha scritto:
… {% extends 'lezioni/index.html.twig' %}
{% form_theme form _self %}
{% block pagina_contenuto %}
<div class="container-fluid">
<div class="panel panel-primary gs-mt-4">
<div class="panel-heading">
<div class="panel-title">{{ form_title|trans }}</div>
</div>
<div class="panel-body">
<div class="row bg-success">
<div class="col-sm-2 text-right"><strong
class="gs-big">Classe:</strong></div>
<div class="col-sm-4"><span class="gs-big">{{ label.classe
}}</span></div>
</div>
<div class="row bg-success gs-mb-3">
<div class="col-sm-2 text-right"><strong
class="gs-big">Materia:</strong></div>
<div class="col-sm-4"><span class="gs-big">{{ label.materia
}}</span></div>
<div class="col-sm-2 text-right"><strong
class="gs-big">Valutazione:</strong></div>
<div class="col-sm-4"><span class="gs-big">{{ label.tipo|trans
}}</span></div>
</div>
{% if app.session.get('/APP/ROUTE/lezioni_voti_classe/conferma') !=
0 %}
<div class="alert alert-warning" role="alert">
<div class="text-center">
<strong class="gs-big">
{{ 'message.alunni_assenti_in_data'|trans }}<br>
{% for a in assenti %}{{ a.cognome }} {{ a.nome }} ({{
a.dataNascita|date('d/m/Y') }}){{ not loop.last ? ', ' }}{% endfor %}.<br>
<em>{{ 'message.modifica_data_o_conferma'|trans }}</em>
</strong>
</div>
</div>
{% endif %}
{{ form_start(form) }}
{{ form_errors(form) }}
{# Data e Argomento #}
{{ form_row(form.data) }}
{{ form_row(form.argomento) }}
{# Opzioni globali #}
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">Opzioni per tutti i voti</h4>
</div>
<div class="panel-body">
<div class="row options-container">
<div class="col-sm-6">
<div class="option-group">
<label class="control-label">Voti visibili ai
genitori</label>
<div class="toggle-switch-container">
<label class="switch">
<input type="checkbox" name="voti_classe[visibile]"
value="1" {% if form.visibile.vars.value %}checked{% endif %}>
<span class="slider"></span>
</label>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="option-group">
<label class="control-label">Utilizza nel calcolo delle
medie?</label>
<div class="toggle-switch-container">
<label class="switch">
<input type="checkbox" id="media_global" checked>
<span class="slider"></span>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
{# Lista alunni #}
<ul id="gs-form-collection" class="list-group">
{% for alu in form.lista %}
<li class="list-group-item">
<div class="row">
<div class="col-sm-3">
<strong>{{ alu.alunno.vars.value }}</strong>
</div>
{{ form_widget(alu) }}
</div>
</li>
{% endfor %}
</ul>
{{ form_end(form) }}
</div>
</div>
</div>
{% endblock %}
{% block pagina_css %}
{{ parent() }}
<link href="{{
asset('vendor/bootstrap-datepicker/css/bootstrap-datepicker3.min.css') }}"
rel="stylesheet">
<style>
.gs-big { font-size: 1.2em; }
.gs-mt-4 { margin-top: 1.5rem; }
.gs-mb-3 { margin-bottom: 1rem; }
.gs-mr-1 { margin-right: 0.25rem; }
/* Stili per il layout delle opzioni */
.options-container {
display: flex;
align-items: center;
justify-content: center;
}
.option-group {
display: flex;
align-items: center;
gap: 15px;
padding: 10px;
}
.option-group .control-label {
margin: 0;
white-space: nowrap;
font-weight: bold;
}
.toggle-switch-container {
display: flex;
align-items: center;
}
/* Switch Toggle Button */
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 34px;
margin: 0;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to right, #dc3545 50%, #28a745 50%);
-webkit-transition: .4s;
transition: .4s;
border-radius: 34px;
}
.slider:before {
position: absolute;
content: "";
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
border-radius: 50%;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Etichette per gli switch */
.switch:after {
content: 'NO';
position: absolute;
left: 8px;
top: 8px;
color: white;
font-size: 12px;
}
.switch:before {
content: 'SI';
position: absolute;
right: 8px;
top: 8px;
color: white;
font-size: 12px;
z-index: 1;
}
/* Stili per i voti */
.voto-select {
width: auto !important;
display: inline-block !important;
margin-right: 10px;
}
</style>
{% endblock %}
{% block pagina_js_fine %}
{{ parent() }}
<script src="{{
asset('vendor/bootstrap-datepicker/js/bootstrap-datepicker.min.js')
}}"></script>
<script src="{{
asset('vendor/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js')
}}"></script>
<script>
$(document).ready(function() {
// Inizializzazione datepicker
$('.input-group.date').datepicker({
format: "dd/mm/yyyy",
weekStart: 1,
maxViewMode: 1,
daysOfWeekDisabled: "0",
startDate: "{{ label.inizio }}",
endDate: "{{ date()|date('d/m/Y') }}",
datesDisabled: {{ label.festivi|raw }},
todayBtn: "linked",
todayHighlight: true,
autoclose: true,
language: "it",
zIndexOffset: 1200
});
// Gestione del voto
$('select[name$="[voto]"]').on('change', function() {
var selectValue = $(this).val();
var value = selectValue ? parseFloat(selectValue) : 0;
var label = $(this).siblings('span.label');
if (value > 0) {
var labelClass = value >= 6 ? 'label-success' : (value < 5 ?
'label-danger' : 'label-warning');
label.removeClass('label-default label-success label-danger
label-warning')
.addClass(labelClass)
.text(value.toFixed(2)); // Assicura 2 decimali
} else {
label.removeClass('label-success label-danger label-warning')
.addClass('label-default')
.text('--');
}
});
// Gestione dello switch per la media
$('#media_global').change(function() {
var includeInMedia = $(this).prop('checked');
$('input[name$="[media]"]').each(function() {
$(this).prop('checked', includeInMedia);
});
});
// Imposta stato iniziale della media globale basato sul primo alunno
var firstMediaValue = $('input[name$="[media]"]:first').prop('checked');
$('#media_global').prop('checked', firstMediaValue);
// Gestione dello switch per la visibilità
$('input[name="voti_classe[visibile]"]').change(function() {
var isVisible = $(this).prop('checked');
$('input[name$="[visibile]"]').prop('checked', isVisible);
});
});
</script>
{% endblock %}
{% block _voti_classe_lista_entry_widget %}
<div class="col-sm-9">
<div class="row">
<label class="control-label col-sm-2" for="{{ form.voto.vars.id
}}">Voto</label>
<div class="col-sm-10">
<select id="{{ form.voto.vars.id }}" name="{{
form.voto.vars.full_name }}" class="form-control voto-select">
<option value="">--</option>
<option value="1.00" {% if form.voto.vars.value == 1 %}selected{%
endif %}>1</option>
<option value="2.00" {% if form.voto.vars.value == 2 %}selected{%
endif %}>2</option>
<option value="3.00" {% if form.voto.vars.value == 3 %}selected{%
endif %}>3</option>
<option value="4.00" {% if form.voto.vars.value == 4 %}selected{%
endif %}>4</option>
<option value="4.25" {% if form.voto.vars.value == 4.25
%}selected{% endif %}>4+</option>
<option value="4.50" {% if form.voto.vars.value == 4.5
%}selected{% endif %}>4½</option>
<option value="4.75" {% if form.voto.vars.value == 4.75
%}selected{% endif %}>5-</option>
<option value="5.00" {% if form.voto.vars.value == 5 %}selected{%
endif %}>5</option>
<option value="5.25" {% if form.voto.vars.value == 5.25
%}selected{% endif %}>5+</option>
<option value="5.50" {% if form.voto.vars.value == 5.5
%}selected{% endif %}>5½</option>
<option value="5.75" {% if form.voto.vars.value == 5.75
%}selected{% endif %}>6-</option>
<option value="6.00" {% if form.voto.vars.value == 6 %}selected{%
endif %}>6</option>
<option value="6.25" {% if form.voto.vars.value == 6.25
%}selected{% endif %}>6+</option>
<option value="6.50" {% if form.voto.vars.value == 6.5
%}selected{% endif %}>6½</option>
<option value="6.75" {% if form.voto.vars.value == 6.75
%}selected{% endif %}>7-</option>
<option value="7.00" {% if form.voto.vars.value == 7 %}selected{%
endif %}>7</option>
<option value="7.25" {% if form.voto.vars.value == 7.25
%}selected{% endif %}>7+</option>
<option value="7.50" {% if form.voto.vars.value == 7.5
%}selected{% endif %}>7½</option>
<option value="7.75" {% if form.voto.vars.value == 7.75
%}selected{% endif %}>8-</option>
<option value="8.00" {% if form.voto.vars.value == 8 %}selected{%
endif %}>8</option>
<option value="8.25" {% if form.voto.vars.value == 8.25
%}selected{% endif %}>8+</option>
<option value="8.50" {% if form.voto.vars.value == 8.5
%}selected{% endif %}>8½</option>
<option value="8.75" {% if form.voto.vars.value == 8.75
%}selected{% endif %}>9-</option>
<option value="9.00" {% if form.voto.vars.value == 9 %}selected{%
endif %}>9</option>
<option value="9.25" {% if form.voto.vars.value == 9.25
%}selected{% endif %}>9+</option>
<option value="9.50" {% if form.voto.vars.value == 9.5
%}selected{% endif %}>9½</option>
<option value="9.75" {% if form.voto.vars.value == 9.75
%}selected{% endif %}>10-</option>
<option value="10.00" {% if form.voto.vars.value == 10
%}selected{% endif %}>10</option>
</select>
<span class="label gs-big gs-mr-1 {{ form.voto.vars.value > 0 ?
(form.voto.vars.value >= 6 ? 'label-success' :
(form.voto.vars.value < 5 ? 'label-danger' : 'label-warning')) :
'label-default' }}"
style="display:inline-block;min-width:3em;padding:0.6em 0.2em;">
{{- form.voto.vars.value > 0 ?
form.voto.vars.value|number_format(2, '.', '') : '--' -}}
</span>
</div>
</div>
<div class="row">
<label class="control-label col-sm-2" for="{{ form.giudizio.vars.id
}}">Giudizio</label>
<div class="col-sm-10">
{{ form_widget(form.giudizio) }}
</div>
</div>
<div style="display:none">
{{ form_widget(form.media) }}
{{ form_widget(form.id) }}
{{ form_widget(form.alunno) }}
</div>
</div>
{% endblock %}
Il giorno ven 1 nov 2024 alle ore 17:24 Antonello Dessì <
***@***.***> ha scritto:
> purtroppo non ho capito molto
>
> Nel codice che hai riportato, nella parte seguente ...
>
> {% for i in 1..10 %}
> <option value="{{ i }}">{{ i }}</option>
> {% if i < 10 %}
> <option value="{{ i }}+">{{ i }}+</option>
> <option value="{{ i }}½">{{ i }}½</option>
> <option value="{{ i+1 }}-">{{ i+1 }}-</option>
> {% endif %}
> {% endfor %}
>
> Bisogna correggere in questo modo...
>
> {% for i in 1..10 %}
> <option value="{{ i }}">{{ i }}</option>
> {% if i < 10 %}
> <option value="{{ i + 0.25 }}">{{ i }}+</option>
> <option value="{{ i + 0.5 }}½">{{ i }}½</option>
> <option value="{{ i + 0.75 }}-">{{ i+1 }}-</option>
> {% endif %}
> {% endfor %}
>
> Anche la soluzione proposta da @manuelbarberi
> <https://github.com/manuelbarberi> è valida.
>
> —
> Reply to this email directly, view it on GitHub
> <#774 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AWL2BFIWK56RFLE7PXTZRALZ6OTNLAVCNFSM6AAAAABQ6DNLPOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJSGE3DQMBRGU>
> .
> You are receiving this because you authored the thread.Message ID:
> ***@***.***>
>
|
solo che ci sono 2 cosine che non sono in grado di risolvere:quando inserisce la valutazione ad un alunno e si vuole inserire un'altra valutazione sempre allo stesso alunno risulta il voto di prima ,anche se comunque è una nuova valutazione il secondo problema è che in fondo risulta ancora la cosa vecchia del voto visibile ai genitori nonostante io abbia dato modificato con il nuovo sistema a colore rosso e verde . |
e poi non so perché ,pur mettendo che il voto non deve far media e non deve risultare visibile alla famiglia ,si vede completamente il contrario |
per favore sarebbe possibile lasciare la cella vuota ,perché ,sempre per questione di tempo, sarebbe meglio cliccare sulla cella e digitare direttamente il voto, senza dove cancellare prima tutti gli zeri su tutti gli alunni presenti di default |
poi ho creato pure questo per far si che sia possibile mettere anche le
valutazioni a lettere ,ad esempio nel momento in cui un alunno è
interrogato e non ha studiato ,la I equivale a 4 ,solo che non appena
carico il codice ricevo l'errore 500 :{% extends 'lezioni/index.html.twig'
%}
{% form_theme form _self %}
{% block pagina_contenuto %}
<div class="container-fluid">
<div class="panel panel-primary gs-mt-4">
<div class="panel-heading">
<div class="panel-title">{{ form_title|trans }}</div>
</div>
<div class="panel-body gs-pt-0">
<div class="row bg-success">
<div class="col-sm-2 text-right"><strong
class="gs-big">Classe:</strong></div>
<div class="col-sm-4"><span class="gs-big">{{ label.classe
}}</span></div>
</div>
<div class="row bg-success gs-mb-3">
<div class="col-sm-2 text-right"><strong
class="gs-big">Materia:</strong></div>
<div class="col-sm-4"><span class="gs-big">{{ label.materia
}}</span></div>
<div class="col-sm-2 text-right"><strong
class="gs-big">Valutazione:</strong></div>
<div class="col-sm-4"><span class="gs-big">{{ label.tipo|trans
}}</span></div>
</div>
<!-- Toggle Switches Section -->
<div class="row mb-4">
<!-- Visibile ai genitori switch -->
<div class="col-sm-6">
<div class="d-flex align-items-center justify-content-between">
<label class="gs-big">Visibile ai genitori:</label>
<label class="switch">
<input type="checkbox" id="visibilityToggle"
name="voti_classe[visibile]" value="1">
<span class="slider"></span>
</label>
</div>
</div>
<!-- Calcola nelle medie switch -->
<div class="col-sm-6">
<div class="d-flex align-items-center justify-content-between">
<label class="gs-big">Calcola nelle medie:</label>
<label class="switch">
<input type="checkbox" id="mediaToggle"
name="voti_classe[media_globale]" value="1">
<span class="slider"></span>
</label>
</div>
</div>
</div>
{% if app.session.get('/APP/ROUTE/lezioni_voti_classe/conferma') != 0
%}
<div class="alert alert-warning" role="alert">
<div class="text-center">
<strong class="gs-big">
{{ 'message.alunni_assenti_in_data'|trans }}<br>
{% for a in assenti %}{{ a.cognome }} {{ a.nome }} ({{
a.dataNascita|date('d/m/Y') }}){{ not loop.last ? ', ' }}{% endfor %}.<br>
<em>{{ 'message.modifica_data_o_conferma'|trans }}</em>
</strong>
</div>
</div>
{% endif %}
{{ form_start(form) }}
{{ form_errors(form) }}
{{ form_row(form.data) }}
{{ form_row(form.argomento) }}
<ul id="gs-form-collection" class="list-group">
{% for alu in form.lista %}
<li class="list-group-item">
<div class="row">
<div class="col-sm-3">
<strong>{{ alu.alunno.vars.value }}</strong>
</div>
{{ form_widget(alu) }}
</div>
</li>
{% endfor %}
</ul>
{{ form_end(form) }}
</div>
</div>
</div>
<style>
/* Toggle Switch Styles */
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 34px;
margin-left: 10px; /* Space between label and switch */
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #dc3545;
transition: .4s;
border-radius: 34px;
}
.slider:before {
position: absolute;
content: "";
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
background-color: white;
transition: .4s;
border-radius: 50%;
}
input:checked + .slider {
background-color: #28a745;
}
input:checked + .slider:before {
transform: translateX(26px);
}
/* Flex styling adjustments */
.d-flex.align-items-center.justify-content-between {
display: flex;
align-items: center;
justify-content: space-between;
}
/* Hide individual media checkboxes */
[name^="voti_classe[lista]"][name$="[media]"],
[name="voti_classe[visibile]"] {
display: none;
}
</style>
{% endblock %}
{% block pagina_css %}
{{ parent() }}
<link href="{{
asset('vendor/bootstrap-slider/css/bootstrap-slider.min.css') }}"
rel="stylesheet">
<link href="{{
asset('vendor/bootstrap-datepicker/css/bootstrap-datepicker3.min.css') }}"
rel="stylesheet">
{% endblock %}
{% block pagina_js_fine %}
{{ parent() }}
<script src="{{
asset('vendor/bootstrap-datepicker/js/bootstrap-datepicker.min.js')
}}"></script>
<script src="{{
asset('vendor/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js')
}}"></script>
<script>
$(document).ready(function() {
$('[data-toggle="popover"]').popover();
$('.input-group.date').datepicker({
format: "dd/mm/yyyy",
weekStart: 1,
maxViewMode: 1,
daysOfWeekDisabled: "0",
startDate: "{{ label.inizio }}",
endDate: "{{ date()|date('d/m/Y') }}",
datesDisabled: {{ label.festivi|raw }},
todayBtn: "linked",
todayHighlight: true,
autoclose: true,
language: "it",
zIndexOffset: 1200
});
// Mappatura delle lettere ai numeri
const gradeMapping = {
'E': 10,
'O': 9,
'B': 8,
'D': 7,
'S': 6,
'I': 4
};
// Gestione dell'input per i voti
$('input[name*="[voto]"]').on('input', function() {
const inputVal = $(this).val().toUpperCase();
const hiddenField = $(this).siblings('.voto-numeric');
// Controlla se l'input è una lettera o un numero
if (gradeMapping.hasOwnProperty(inputVal)) {
hiddenField.val(gradeMapping[inputVal]); // Aggiorna il campo
nascosto se è una lettera
} else if ($.isNumeric(inputVal) && inputVal >= 1 && inputVal <= 10) {
hiddenField.val(inputVal); // Aggiorna il campo nascosto se è un
numero valido
} else {
hiddenField.val(''); // Se non è valido, svuota il campo
}
});
// Handle visibility toggle
$('#visibilityToggle').change(function() {
const isChecked = $(this).is(':checked');
$('input[name="voti_classe[visibile]"]').val(isChecked ? 1 : 0);
});
// Handle media toggle - completely independent
$('#mediaToggle').change(function() {
const isChecked = $(this).is(':checked');
$('input[name^="voti_classe[lista]"][name$="[media]"]').val(isChecked ?
1 : 0);
});
// Initialize states from the form's initial values
const initialVisibility = $('input[name="voti_classe[visibile]"]').val()
== 1;
const initialMedia =
$('input[name^="voti_classe[lista]"][name$="[media]"]:first').val() == 1;
$('#visibilityToggle').prop('checked', initialVisibility);
$('#mediaToggle').prop('checked', initialMedia);
});
</script>
{% endblock %}
{% block _voti_classe_lista_entry_widget %}
<div class="col-sm-9">
<div class="row">
<label class="control-label col-sm-2" for="{{ form.voto.vars.id
}}">Voto</label>
<div class="col-sm-10">
<input type="text" id="{{ form.voto.vars.id }}" name="{{
form.voto.vars.full_name }}"
value="{{ form.voto.vars.value > 0 ? form.voto.vars.value :
'' }}" class="form-control gs-mr-1 gs-big"
maxlength="1" placeholder="Inserisci voto o lettera"> <!--
Permetti inserimento di 1 carattere -->
</div>
</div>
<div class="row">
<label class="control-label col-sm-2" for="{{ form.giudizio.vars.id
}}">Giud
Il giorno ven 1 nov 2024 alle ore 21:32 Luigi Semplicini <
***@***.***> ha scritto:
… cosa ve ne pare del codice inoltrato?
Il giorno ven 1 nov 2024 alle ore 21:30 Luigi Semplicini <
***@***.***> ha scritto:
> {% extends 'lezioni/index.html.twig' %}
>
> {% form_theme form _self %}
>
> {% block pagina_contenuto %}
> <div class="container-fluid">
> <div class="panel panel-primary gs-mt-4">
> <div class="panel-heading">
> <div class="panel-title">{{ form_title|trans }}</div>
> </div>
> <div class="panel-body">
> <div class="row bg-success">
> <div class="col-sm-2 text-right"><strong
> class="gs-big">Classe:</strong></div>
> <div class="col-sm-4"><span class="gs-big">{{ label.classe
> }}</span></div>
> </div>
> <div class="row bg-success gs-mb-3">
> <div class="col-sm-2 text-right"><strong
> class="gs-big">Materia:</strong></div>
> <div class="col-sm-4"><span class="gs-big">{{ label.materia
> }}</span></div>
> <div class="col-sm-2 text-right"><strong
> class="gs-big">Valutazione:</strong></div>
> <div class="col-sm-4"><span class="gs-big">{{ label.tipo|trans
> }}</span></div>
> </div>
>
> {% if app.session.get('/APP/ROUTE/lezioni_voti_classe/conferma') !=
> 0 %}
> <div class="alert alert-warning" role="alert">
> <div class="text-center">
> <strong class="gs-big">
> {{ 'message.alunni_assenti_in_data'|trans }}<br>
> {% for a in assenti %}{{ a.cognome }} {{ a.nome }} ({{
> a.dataNascita|date('d/m/Y') }}){{ not loop.last ? ', ' }}{% endfor %}.<br>
> <em>{{ 'message.modifica_data_o_conferma'|trans }}</em>
> </strong>
> </div>
> </div>
> {% endif %}
>
> {{ form_start(form) }}
> {{ form_errors(form) }}
>
> {# Data e Argomento #}
> {{ form_row(form.data) }}
> {{ form_row(form.argomento) }}
>
> {# Opzioni globali #}
> <div class="panel panel-default">
> <div class="panel-heading">
> <h4 class="panel-title">Opzioni per tutti i voti</h4>
> </div>
> <div class="panel-body">
> <div class="row options-container">
> <div class="col-sm-6">
> <div class="option-group">
> <label class="control-label">Voti visibili ai
> genitori</label>
> <div class="toggle-switch-container">
> <label class="switch">
> <input type="checkbox" name="voti_classe[visibile]"
> value="1" {% if form.visibile.vars.value %}checked{% endif %}>
> <span class="slider"></span>
> </label>
> </div>
> </div>
> </div>
> <div class="col-sm-6">
> <div class="option-group">
> <label class="control-label">Utilizza nel calcolo delle
> medie?</label>
> <div class="toggle-switch-container">
> <label class="switch">
> <input type="checkbox" id="media_global" checked>
> <span class="slider"></span>
> </label>
> </div>
> </div>
> </div>
> </div>
> </div>
> </div>
>
> {# Lista alunni #}
> <ul id="gs-form-collection" class="list-group">
> {% for alu in form.lista %}
> <li class="list-group-item">
> <div class="row">
> <div class="col-sm-3">
> <strong>{{ alu.alunno.vars.value }}</strong>
> </div>
> {{ form_widget(alu) }}
> </div>
> </li>
> {% endfor %}
> </ul>
>
> {{ form_end(form) }}
> </div>
> </div>
> </div>
> {% endblock %}
>
> {% block pagina_css %}
> {{ parent() }}
> <link href="{{
> asset('vendor/bootstrap-datepicker/css/bootstrap-datepicker3.min.css') }}"
> rel="stylesheet">
> <style>
> .gs-big { font-size: 1.2em; }
> .gs-mt-4 { margin-top: 1.5rem; }
> .gs-mb-3 { margin-bottom: 1rem; }
> .gs-mr-1 { margin-right: 0.25rem; }
>
> /* Stili per il layout delle opzioni */
> .options-container {
> display: flex;
> align-items: center;
> justify-content: center;
> }
>
> .option-group {
> display: flex;
> align-items: center;
> gap: 15px;
> padding: 10px;
> }
>
> .option-group .control-label {
> margin: 0;
> white-space: nowrap;
> font-weight: bold;
> }
>
> .toggle-switch-container {
> display: flex;
> align-items: center;
> }
>
> /* Switch Toggle Button */
> .switch {
> position: relative;
> display: inline-block;
> width: 60px;
> height: 34px;
> margin: 0;
> }
>
> .switch input {
> opacity: 0;
> width: 0;
> height: 0;
> }
>
> .slider {
> position: absolute;
> cursor: pointer;
> top: 0;
> left: 0;
> right: 0;
> bottom: 0;
> background: linear-gradient(to right, #dc3545 50%, #28a745 50%);
> -webkit-transition: .4s;
> transition: .4s;
> border-radius: 34px;
> }
>
> .slider:before {
> position: absolute;
> content: "";
> height: 26px;
> width: 26px;
> left: 4px;
> bottom: 4px;
> background-color: white;
> -webkit-transition: .4s;
> transition: .4s;
> border-radius: 50%;
> }
>
> input:checked + .slider:before {
> -webkit-transform: translateX(26px);
> -ms-transform: translateX(26px);
> transform: translateX(26px);
> }
>
> /* Etichette per gli switch */
> .switch:after {
> content: 'NO';
> position: absolute;
> left: 8px;
> top: 8px;
> color: white;
> font-size: 12px;
> }
>
> .switch:before {
> content: 'SI';
> position: absolute;
> right: 8px;
> top: 8px;
> color: white;
> font-size: 12px;
> z-index: 1;
> }
>
> /* Stili per i voti */
> .voto-select {
> width: auto !important;
> display: inline-block !important;
> margin-right: 10px;
> }
> </style>
> {% endblock %}
>
> {% block pagina_js_fine %}
> {{ parent() }}
> <script src="{{
> asset('vendor/bootstrap-datepicker/js/bootstrap-datepicker.min.js')
> }}"></script>
> <script src="{{
> asset('vendor/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js')
> }}"></script>
> <script>
> $(document).ready(function() {
> // Inizializzazione datepicker
> $('.input-group.date').datepicker({
> format: "dd/mm/yyyy",
> weekStart: 1,
> maxViewMode: 1,
> daysOfWeekDisabled: "0",
> startDate: "{{ label.inizio }}",
> endDate: "{{ date()|date('d/m/Y') }}",
> datesDisabled: {{ label.festivi|raw }},
> todayBtn: "linked",
> todayHighlight: true,
> autoclose: true,
> language: "it",
> zIndexOffset: 1200
> });
>
> // Gestione del voto
> $('select[name$="[voto]"]').on('change', function() {
> var selectValue = $(this).val();
> var value = selectValue ? parseFloat(selectValue) : 0;
> var label = $(this).siblings('span.label');
>
> if (value > 0) {
> var labelClass = value >= 6 ? 'label-success' : (value < 5 ?
> 'label-danger' : 'label-warning');
> label.removeClass('label-default label-success label-danger
> label-warning')
> .addClass(labelClass)
> .text(value.toFixed(2)); // Assicura 2 decimali
> } else {
> label.removeClass('label-success label-danger label-warning')
> .addClass('label-default')
> .text('--');
> }
> });
>
> // Gestione dello switch per la media
> $('#media_global').change(function() {
> var includeInMedia = $(this).prop('checked');
> $('input[name$="[media]"]').each(function() {
> $(this).prop('checked', includeInMedia);
> });
> });
>
> // Imposta stato iniziale della media globale basato sul primo alunno
> var firstMediaValue = $('input[name$="[media]"]:first').prop('checked');
> $('#media_global').prop('checked', firstMediaValue);
>
> // Gestione dello switch per la visibilità
> $('input[name="voti_classe[visibile]"]').change(function() {
> var isVisible = $(this).prop('checked');
> $('input[name$="[visibile]"]').prop('checked', isVisible);
> });
> });
> </script>
> {% endblock %}
>
> {% block _voti_classe_lista_entry_widget %}
> <div class="col-sm-9">
> <div class="row">
> <label class="control-label col-sm-2" for="{{ form.voto.vars.id
> }}">Voto</label>
> <div class="col-sm-10">
> <select id="{{ form.voto.vars.id }}" name="{{
> form.voto.vars.full_name }}" class="form-control voto-select">
> <option value="">--</option>
> <option value="1.00" {% if form.voto.vars.value == 1 %}selected{%
> endif %}>1</option>
> <option value="2.00" {% if form.voto.vars.value == 2 %}selected{%
> endif %}>2</option>
> <option value="3.00" {% if form.voto.vars.value == 3 %}selected{%
> endif %}>3</option>
> <option value="4.00" {% if form.voto.vars.value == 4 %}selected{%
> endif %}>4</option>
> <option value="4.25" {% if form.voto.vars.value == 4.25
> %}selected{% endif %}>4+</option>
> <option value="4.50" {% if form.voto.vars.value == 4.5
> %}selected{% endif %}>4½</option>
> <option value="4.75" {% if form.voto.vars.value == 4.75
> %}selected{% endif %}>5-</option>
> <option value="5.00" {% if form.voto.vars.value == 5 %}selected{%
> endif %}>5</option>
> <option value="5.25" {% if form.voto.vars.value == 5.25
> %}selected{% endif %}>5+</option>
> <option value="5.50" {% if form.voto.vars.value == 5.5
> %}selected{% endif %}>5½</option>
> <option value="5.75" {% if form.voto.vars.value == 5.75
> %}selected{% endif %}>6-</option>
> <option value="6.00" {% if form.voto.vars.value == 6 %}selected{%
> endif %}>6</option>
> <option value="6.25" {% if form.voto.vars.value == 6.25
> %}selected{% endif %}>6+</option>
> <option value="6.50" {% if form.voto.vars.value == 6.5
> %}selected{% endif %}>6½</option>
> <option value="6.75" {% if form.voto.vars.value == 6.75
> %}selected{% endif %}>7-</option>
> <option value="7.00" {% if form.voto.vars.value == 7 %}selected{%
> endif %}>7</option>
> <option value="7.25" {% if form.voto.vars.value == 7.25
> %}selected{% endif %}>7+</option>
> <option value="7.50" {% if form.voto.vars.value == 7.5
> %}selected{% endif %}>7½</option>
> <option value="7.75" {% if form.voto.vars.value == 7.75
> %}selected{% endif %}>8-</option>
> <option value="8.00" {% if form.voto.vars.value == 8 %}selected{%
> endif %}>8</option>
> <option value="8.25" {% if form.voto.vars.value == 8.25
> %}selected{% endif %}>8+</option>
> <option value="8.50" {% if form.voto.vars.value == 8.5
> %}selected{% endif %}>8½</option>
> <option value="8.75" {% if form.voto.vars.value == 8.75
> %}selected{% endif %}>9-</option>
> <option value="9.00" {% if form.voto.vars.value == 9 %}selected{%
> endif %}>9</option>
> <option value="9.25" {% if form.voto.vars.value == 9.25
> %}selected{% endif %}>9+</option>
> <option value="9.50" {% if form.voto.vars.value == 9.5
> %}selected{% endif %}>9½</option>
> <option value="9.75" {% if form.voto.vars.value == 9.75
> %}selected{% endif %}>10-</option>
> <option value="10.00" {% if form.voto.vars.value == 10
> %}selected{% endif %}>10</option>
> </select>
> <span class="label gs-big gs-mr-1 {{ form.voto.vars.value > 0 ?
> (form.voto.vars.value >= 6 ? 'label-success' :
> (form.voto.vars.value < 5 ? 'label-danger' : 'label-warning')) :
> 'label-default' }}"
> style="display:inline-block;min-width:3em;padding:0.6em 0.2em;">
> {{- form.voto.vars.value > 0 ?
> form.voto.vars.value|number_format(2, '.', '') : '--' -}}
> </span>
> </div>
> </div>
>
> <div class="row">
> <label class="control-label col-sm-2" for="{{ form.giudizio.vars.id
> }}">Giudizio</label>
> <div class="col-sm-10">
> {{ form_widget(form.giudizio) }}
> </div>
> </div>
>
> <div style="display:none">
> {{ form_widget(form.media) }}
> {{ form_widget(form.id) }}
> {{ form_widget(form.alunno) }}
> </div>
> </div>
> {% endblock %}
>
> Il giorno ven 1 nov 2024 alle ore 17:24 Antonello Dessì <
> ***@***.***> ha scritto:
>
>> purtroppo non ho capito molto
>>
>> Nel codice che hai riportato, nella parte seguente ...
>>
>> {% for i in 1..10 %}
>> <option value="{{ i }}">{{ i }}</option>
>> {% if i < 10 %}
>> <option value="{{ i }}+">{{ i }}+</option>
>> <option value="{{ i }}½">{{ i }}½</option>
>> <option value="{{ i+1 }}-">{{ i+1 }}-</option>
>> {% endif %}
>> {% endfor %}
>>
>> Bisogna correggere in questo modo...
>>
>> {% for i in 1..10 %}
>> <option value="{{ i }}">{{ i }}</option>
>> {% if i < 10 %}
>> <option value="{{ i + 0.25 }}">{{ i }}+</option>
>> <option value="{{ i + 0.5 }}½">{{ i }}½</option>
>> <option value="{{ i + 0.75 }}-">{{ i+1 }}-</option>
>> {% endif %}
>> {% endfor %}
>>
>> Anche la soluzione proposta da @manuelbarberi
>> <https://github.com/manuelbarberi> è valida.
>>
>> —
>> Reply to this email directly, view it on GitHub
>> <#774 (comment)>,
>> or unsubscribe
>> <https://github.com/notifications/unsubscribe-auth/AWL2BFIWK56RFLE7PXTZRALZ6OTNLAVCNFSM6AAAAABQ6DNLPOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJSGE3DQMBRGU>
>> .
>> You are receiving this because you authored the thread.Message ID:
>> ***@***.***>
>>
>
|
Non fare il copia-incolla del codice, è praticamente illeggibile. |
Buongiorno, finalmente sono riuscito a modificare la tipologia d'inserimento delle valutazioni alle classe mediante il percorso templates/lezioni/voti_classe_edit.html.twig In pratica invece del classico tasto "aggiungi" ,ho inserito un menu a tendina dove si clicca e si scorre scegliendo la valutazione da attribuire alla classe ,vi alle pure il codice :
Devo dire che delle volte funziona ed altre no ,infatti se si tratta di attribuire la valutazione a 1,3 massimo 5 alunni ,lo fa egregiamente ,ma se si tratta dell'intera classe mi riporta l'errore 500 che ora vi allego .Ora ho provato ad inserire a tutti gli alunni la valutazione pari a 9 e va tutto bene, infatti non mi da nessun problema ,non vorrei il problema fosse nel codice che permette come unico voto attribuibile il 9 .
2024-10-31_12-41.log
The text was updated successfully, but these errors were encountered: